728x90
매일 SQLD 기출 문제 풀기 챌린지
문제 24.
다음 SQL의 결과는 무엇인가?
[ 테이블명: SQLD24 ]
N1 | ID | N2 |
200 | A | T1 |
250 | B | T2 |
300 | NULL | T3 |
SQL :
SELECT COUNT(*)
FROM SQLD24
WHERE N1 >= 200 OR N2 IS NULL AND ID = 'B';
답 ?
해설해보기
이 문제에서 집중해야할 것은, 연산자 우선순위이다.
SQL에서는 AND 연산자가 OR 연산자보다 우선순위가 높다.
그래서 문제에서 제시한 쿼리를 괄호로 묶어서 보면, 아래와 같다.
SELECT COUNT(*)
FROM SQLD24
WHERE (N1 >= 200) OR (N2 IS NULL AND ID = 'B');
위 쿼리를 기반으로 설명하면,
N1 이 200 이상인 행은 3개이다.
N2 가 NULL이면서 ID가 B인 행은 없다.
따라서 3 + 0 = 3 이기 때문에 정답은 3이다.
관련 스크립트
CREATE TABLE SQLD24 (
N1 INT,
ID VARCHAR(255),
N2 VARCHAR(255)
);
INSERT INTO SQLD24 (N1, ID, N2) VALUES (200, 'A', 'T1');
INSERT INTO SQLD24 (N1, ID, N2) VALUES (250, 'B', 'T2');
INSERT INTO SQLD24 (N1, ID, N2) VALUES (300, NULL, 'T3');
commit;
반응형
'SQL 문제 풀기 > 2. SQLD 기출 : 2024.3.01~2024.4.25' 카테고리의 다른 글
<SQLD 26> outer 조인에 대한 기출문제 (2) | 2024.03.26 |
---|---|
<SQLD 25> Like 연산자에 대한 기출문제 (0) | 2024.03.25 |
<SQLD 23> ntile 함수 관련 기출문제 (4) | 2024.03.23 |
<SQLD 22> select 문의 6가지절의 실행순서에 대한 기출문제 (2) | 2024.03.22 |
<SQLD 21> NULL 값에 대한 이해 (0) | 2024.03.21 |