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
위와 같이 조건을 주어야 합니다.
반응형
'SQL 문제 풀기 > 2. SQLD 기출 : 2024.3.01~2024.4.25' 카테고리의 다른 글
<SQLD 23> ntile 함수 관련 기출문제 (4) | 2024.03.23 |
---|---|
<SQLD 22> select 문의 6가지절의 실행순서에 대한 기출문제 (2) | 2024.03.22 |
<SQLD 20>그룹함수 SUM에 대한 기출문제 (0) | 2024.03.20 |
<SQLD 19> 그룹함수 사용 SQL에 대한 기출문제 (0) | 2024.03.19 |
<SQLD 18> AVG 함수에 대한 기출문제 (4) | 2024.03.18 |