728x90
매일 SQLD 기출 문제 풀기 챌린지
문제 43.
다음 주어진 테이블에 대해서 아래의 SQL문을 수행하였을 때 결과 행의 수는?
[ 테이블 : TEST43 ]
COL1 | COL2 |
10000 | ABC |
10000 | NULL |
10000 | AbC |
20000 | ABC |
[ SQL ]
SELECT *
FROM TEST43
WHERE (COL1, COL2) IN ((10000,'ABC'));
① NULL
② 1
③ 2
④ 3
해설해보기
■ IN 연산자
IN 연산자는 주어진 값 목록 중 하나라도 일치하는 행을 찾을 때 사용하는 연산자입니다.
예를들어 아래와 같이 쓰인다면, col1 에 10000 또는 20000 이 있는 행을 찾습니다.
WHERE col1 IN (10000, 20000) ;
하지만 문제에 제시된 쿼리처럼 튜플(여러 컬럼의 조합)에 대해서도 사용할 수 있습니다.
제공된 쿼리는 IN연산자를 사용해서 COL1과 COL2 컬럼 값의 조합이
지정된 튜플 목록 중 하나와 일치하는지를 확인합니다.
여기서는 튜플 목록이 단 하나의 튜플인 (10000, 'ABC')로 구성되어 있습니다.
제공된 쿼리는 TEST43 테이블에서
COL1 = 10000이고,
COL2 = 'ABC'인 행을 출력하는 쿼리입니다.
이때 'ABC'는 대소문자를 구분하기 때문에 'AbC'는 서로 다른 값으로 처리됩니다.
직접 실행해보기
SELECT *
FROM TEST43
WHERE (COL1, COL2) IN ((10000,'ABC'));
관련 스크립트
DROP TABLE TEST43;
CREATE TABLE TEST43 (
COL1 NUMBER,
COL2 VARCHAR2(50)
);
INSERT INTO TEST43 (COL1, COL2) VALUES (10000, 'ABC');
INSERT INTO TEST43 (COL1, COL2) VALUES (10000, NULL);
INSERT INTO TEST43 (COL1, COL2) VALUES (10000, 'AbC');
INSERT INTO TEST43 (COL1, COL2) VALUES (20000, 'ABC');
COMMIT;
반응형
'SQL 문제 풀기 > 2. SQLD 기출 : 2024.3.01~2024.4.25' 카테고리의 다른 글
<SQLD 45> 데이터 분석함수에 대한 기출문제 (2) | 2024.04.14 |
---|---|
<SQLD 44> 조인에 대한 기출문제 (0) | 2024.04.13 |
<SQLD 42> like 연산자에 대한 기출문제 (0) | 2024.04.11 |
<SQLD 41> NULL 값 비교에 대한 기출문제 (0) | 2024.04.10 |
<SQLD 40> 서브쿼리에 대한 기출문제 (0) | 2024.04.09 |