-
카테고리
-
세부 분야
데이터 분석
-
해결 여부
해결됨
NOT IN은 왜 안될까요..?
21.06.21 14:53 작성 조회수 148
1
위 쿼리가 정답 쿼리인데요. 이 쿼리를 아래와 같이 바꾸면 답이 안되는 이유가 무엇일까요...?
답변을 작성해보세요.
3
지식공유자 J
지식공유자2021.06.27
문제의 Sample Input을 예시로 설명 드리겠습니다.
SELECT N FROM BST WHERE N NOT IN (SELECT DISTINCT P from BST)
위 쿼리를 실행하면 N을 하나하나씩 2, 5, 8, Null과 비교해서 N!=2, N!=5, N!=8, N!=null, 이 4가지 연산 모두 True 값을 반환하는 경우에만 N이 출력됩니다.
그런데 null과의 비교연산에서는 True도 False도 아닌 Unknown 값을 반환하게 되므로, 어떤 N도 N!=null 을 통과하지 못합니다.
WHERE P IS NOT NULL 조건을 넣어주면 N과 null의 비교연산을 하지 않아도 되니 N!=2, N!=5, N!=8, 이렇게 3가지 조건을 모두 만족하는 값들이 출력됩니다.
0
답변 2