복붙노트

[SQL] 하나 개의 값에 대해 여러 열을 확인

SQL

하나 개의 값에 대해 여러 열을 확인

나는 예를 들어이 같은 열이있는 테이블이 있습니다

id,col1,col2,col3,col4

지금, 나는 어떤 COL1, COL2, COL3의가, col4는 값 전달이 있는지 확인하고 싶습니다.

긴 방법은 될 것이라고 할 수 있습니다 ..

SELECT * FROM table WHERE (col1 = 123 OR col2 = 123 OR col3 = 123 OR col4 = 123);

나는 그것이 IN의 반대 버전 같아요.

내가하고 싶은 일을 할 수있는 쉬운 방법이 있습니까?

해결법

  1. ==============================

    1.당신은 IN 술어를 사용할 수 있습니다, 그래서 같은 :

    당신은 IN 술어를 사용할 수 있습니다, 그래서 같은 :

    SELECT * FROM table WHERE 123 IN(col1, col2, col3, col4);
    

    아니, 그것은 관찰 보고서 당신이 질문 한 방법을 사용하는 것과 동일하지 않습니다.

    술어 또는 세트 회원 AS1을 정의한다 :

    어디 값 식 중 하나이 될 수 있습니다 :

    그것은 리터럴 값 표현 (123)을 사용하여, 이런 식으로 할 수있는 좋은입니다 그래서.

    1, 2 : SQL에서 데이터 조작에 대한 실습 가이드 : 단순한 인간에 대한 SQL 쿼리 (R)의 이미지

  2. ==============================

    2.연접 된 값을 사용하면 열 값을 구분하는 구분 기호를 사용하여 찾고있는 문자 시퀀스를 생성 단지 넣다, 열은 숫자 값입니다 가정 그리고 파이프 (|)이있는 구분 기호 : (참고 : 당신이 뭔가를 할 수 있습니다.. 예.)

    연접 된 값을 사용하면 열 값을 구분하는 구분 기호를 사용하여 찾고있는 문자 시퀀스를 생성 단지 넣다, 열은 숫자 값입니다 가정 그리고 파이프 (|)이있는 구분 기호 : (참고 : 당신이 뭔가를 할 수 있습니다.. 예.)

    SELECT [ID]
        ,[Col1]
        ,[Col2]
        ,[Col3]
        ,[Col4]
    FROM [Table1]
    WHERE '123' IN (
        CAST([Col1] AS VARCHAR) + '|'
        + CAST([Col2] AS VARCHAR) + '|'
        + CAST([Col3] AS VARCHAR) + '|'
        + CAST([Col4] AS VARCHAR) + '|'
    )
    
  3. ==============================

    3.나는 비슷한 문제를 가지고 있었고, 이런 식으로 해결 : SELECT *를 테이블에서 WHERE COL1 OR COL2 IN (FROM SELECT XID TABLEX WHERE somecol = 3)

    나는 비슷한 문제를 가지고 있었고, 이런 식으로 해결 : SELECT *를 테이블에서 WHERE COL1 OR COL2 IN (FROM SELECT XID TABLEX WHERE somecol = 3)

    확실하지가 "가장 좋은 방법"그러나 그것은 나를 위해 작동합니다.

    생각?

  4. from https://stackoverflow.com/questions/13916400/checking-multiple-columns-for-one-value by cc-by-sa and MIT license