programing

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

sourcetip 2022. 12. 26. 22:35
반응형

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

다음과 같은 열이 있는 테이블이 있습니다.

id,col1,col2,col3,col4

이제 확인해보겠습니다.ANYcol1, col2, col3, col4값이 통용되다

그렇게 하는 먼 길은..

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

그 반대 버전인 것 같아요.IN.

내가 원하는 것을 할 수 있는 더 쉬운 방법은 없을까?

를 사용할 수 있습니다.IN다음과 같이 서술합니다.

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

SQL 바이올린 데모


IN의 반대 버전입니다.

아니요, 아닙니다. 이것은 이 명령어를 사용하는 것과 같습니다.OR질문하신 대로입니다.


이를 명확히 하기 위해:

술어IN또는 set 멤버쉽은 다음과 같이 정의됩니다1.

여기에 이미지 설명 입력

어디서?Value Expression다음 중 하나를 사용할 수 있습니다.

여기에 이미지 설명 입력

그래서 가치표현을 이용해서 이렇게 하는 것이 좋습니다.123리터럴입니다.


1, 2: Images from: SQL Queries for Mere Mortals(R): A Hands-On Guide to Data Manipulation in SQL

저도 비슷한 문제가 있어서 이렇게 해결했습니다.SELECT * FROM table WHERE col1 OR col2 IN(SELECT xid FROM tablex WHERE somecol = 3)

그것이 "최선의 방법"인지는 모르겠지만, 나에게는 효과가 있다.

생각?

다음과 같은 작업을 수행할 수 있습니다. (주의: 열이 숫자 값이라고 가정합니다.그리고 연결된 값에 따라 찾고 있는 문자 시퀀스가 생성될 수 있으므로 구분 기호를 사용하여 열 값을 구분하십시오.이 예에서는 파이프(|)가 딜리미터입니다.

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) + '|'
)

언급URL : https://stackoverflow.com/questions/13916400/checking-multiple-columns-for-one-value

반응형