계약 테이블은 6행(상태 '유지' 4행, '해지' 2행), 특약 테이블… | [SQLD] SQL 개발자 기출유형 모의고사 10회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 10회
계약 테이블은 6행(상태 '유지' 4행, '해지' 2행), 특약 테이블은 3행(그중 1행은 특약명이 NULL)이다. 다음 SQL 의 결과 행 수는?SELECT K.계약번호, T.특약명 FROM 계약 K CROSS JOIN 특약 T WHERE K.상태 = '유지';
1
12
2
8
3
18
4
6
해설
CROSS JOIN 은 조인 조건 없이 모든 행을 짝짓는 카티션 곱이고, WHERE 가 계약 쪽만 '유지' 4행으로 거르므로 4 × 3 = 12행이다.
특약명이 NULL 인 행도 곱하기에서 빠지지 않으며, 조건이 없는 한 NULL 여부는 행 수에 영향을 주지 않는다.
- 8행은 특약명이 NULL 인 행을 곱하기에서 뺀 결과다.
- 18행은 WHERE 필터 전 6 × 3 전체 곱이다.
- 6행은 계약 쪽 행 수만 남는다고 본 결과다.
오류나 개정된 내용이 보이면 알려주세요