본문 바로가기
SQL

SQL 강의 SQLP SQLD 기출 문제 - 004 / 다중 IN 조건 이해

by SQL Master 2022. 10. 7.
반응형

이 문제는 IN 조건에 대해 이해할 수 있는 문제이고, IN 조건을 다중으로 사용하는 방법을 알아야 풀 수 있는 문제입니다.

 

문제

아래 SQL의 결과와 똑같은 SQL를 고르세요.

[TABLE_A]

COL1 COL2
A NULL
B A
C B
D C
E D
[예문]
SELECT *
  FROM TABLE_A
 WHERE (COL1, COL2) IN (('B', 'A'), (NULL, 'C'))
 
 
1. SELECT * FROM TABLE_A WHERE COL1 = 'B'
2. SELECT * FROM TABLE_A WHERE COL1 IN ('A', 'B')
3. SELECT * FROM TABLE_A WHERE (COL1, COL2) IN (('A', 'B'), ('B','C'))
4. SELECT * FROM TABLE_A WHERE (COL1, COL2) IN (('B', 'C'), ('C','D'))

 

 


 

문제풀이

  • 다중 IN 조건은 둘 다 만족해야 결과를 리턴한다.
  • 다중 IN 조건의 컬럼들은 AND로 값들의 비교는 OR로 이해하면 편하다.
SELECT *
  FROM TABLE_A
 WHERE (COL1, COL2) IN (('B', 'A'), (NULL, 'C'))
 
>>

WHERE (COL1 = 'B' AND COL2 = 'A') OR (COL1 = NULL AND COL2 = 'C')

>> 위에 처럼 컬럼은 AND로 값은 OR로 풀린다.

 

1. SELECT * FROM TABLE_A WHERE COL1 = 'B'
>> COL1이 'B'인 ROW

2. SELECT * FROM TABLE_A WHERE COL1 IN ('A', 'B')
>> COL1이 'A' 이거나 'B' 인 ROW
>> COL1 = 'A' OR COL1 = 'B'

3. SELECT * FROM TABLE_A WHERE (COL1, COL2) IN (('A', 'B'), ('B','C'))
>> COL1이 'A' 이고 COL2가 'B'이면서 COL1이 'B' 이고 COL2가 'C'인 ROW
>> (COL1 = 'A' AND COL2 = 'B') OR (COL1 = 'B' AND COL2 = 'C')

4. SELECT * FROM TABLE_A WHERE (COL1, COL2) IN (('B', 'C'), ('C','D'))
>> COL1이 'B' 이고 COL2가 'C'이면서 COL1이 'C' 이고 COL2가 'D'인 ROW
>> (COL1 = 'B' AND COL2 = 'C') OR (COL1 = 'C' AND COL2 = 'D')

 

 


오늘은 다중 IN 조건을 해석하는 방식에 대해서 알아봤습니다~

추가적인 궁금증은 댓글로 달아주세요!! :)

 

반응형

댓글