SQL 문제 풀기/2. SQLD 기출 : 2024.3.01~2024.4.25
<SQLD 21> NULL 값에 대한 이해
HYEHYE_SON
2024. 3. 21. 23:41
728x90
매일 SQLD 기출 문제 풀기 챌린지
문제 21.
다음 주어진 테이블에서 해당 SQL문을 실행한 결과로 알맞은 것은?
[ TEST17 테이블 ]
COL1 | COL2 |
NULL | A |
1 | B |
2 | C |
3 | D |
4 | E |
SQL >
SELECT *
FROM test17
WHERE col1 IN(1,2,null);
①
COL1 | COL2 |
1 | B |
2 | C |
②
COL1 | COL2 |
2 | B |
2 | C |
③
COL1 | COL2 |
1 | B |
2 | C |
3 | D |
4 | E |
④
COL1 | COL2 |
NULL | A |
1 | B |
2 | C |
3 | D |
4 | E |
해설해보기
SQL 에서 null은 알 수 없는 값입니다.
따라서 null은 다른 값과 비교할 수 없기 때문에
in에 null값을 넣어주어도 null 인 행을 반환할 수 없습니다.
만약에 null 인 값에 대한 조건을 싶다면,
IS NULL 혹은 IS NOT NULL 을 사용해주어야 합니다.
따라서 위의 문제에 대한 정답은
COL1이 1 또는 2인 경우만 반환되기 때문에
① 이 정답입니다.
만약 NULL 도 출력하고 싶다면,
WHERE col1 in(1,2) or col1 is null
위와 같이 조건을 주어야 합니다.
반응형