학습용 기출·복원자료 분류 확인SQLD · 2025년 58회 SQL 기본 및 활용 · 31번
다음 중 스칼라 서브쿼리(Scalar Subquery)에 대한 설명으로 올바르지 않은 것은?
1
원칙적으로 단 1개의 행과 1개의 컬럼만 반환해야 한다.
오답 이유‘원칙적으로 단 1개의 행과 1개의 컬럼만 반환해야 한다.’은 이 문항에서 요구하는 ‘서브쿼리의 실행 결과가 0건일 경우 에러를 발생시킨다.’의 정의·역할과 구분된다. 스칼라 서브쿼리는 결과가 0건이면 에러가 아니라 NULL을 반환한다. (단, 2건 이상이면 에러 발생) 이를 문항 조건에 적용하면 ‘서브쿼리의 실행 결과가 0건일 경우 에러를 발생시킨다.’을 선택한다. 따라서 1번 보기 ‘원칙적으로 단 1개의 행과 1개의 컬럼만 반환해야 한다.’의 적용 여부를 문제 조건과 대조해야 한다.
2
메인쿼리의 결과 건수만큼 반복 수행된다.
오답 이유‘메인쿼리의 결과 건수만큼 반복 수행된다.’은 이 문항에서 요구하는 ‘서브쿼리의 실행 결과가 0건일 경우 에러를 발생시킨다.’의 정의·역할과 구분된다. 스칼라 서브쿼리는 결과가 0건이면 에러가 아니라 NULL을 반환한다. (단, 2건 이상이면 에러 발생) 이를 문항 조건에 적용하면 ‘서브쿼리의 실행 결과가 0건일 경우 에러를 발생시킨다.’을 선택한다. 따라서 2번 보기 ‘메인쿼리의 결과 건수만큼 반복 수행된다.’의 적용 여부를 문제 조건과 대조해야 한다.
3
서브쿼리의 실행 결과가 0건일 경우 에러를 발생시킨다.
정답 근거스칼라 서브쿼리는 결과가 0건이면 에러가 아니라 NULL을 반환한다. (단, 2건 이상이면 에러 발생) 이를 문항 조건에 적용하면 ‘서브쿼리의 실행 결과가 0건일 경우 에러를 발생시킨다.’을 선택한다. 따라서 3번 보기 ‘서브쿼리의 실행 결과가 0건일 경우 에러를 발생시킨다.’의 적용 여부를 문제 조건과 대조해야 한다.
4
SELECT 절 등 단일 값이 요구되는 곳에 주로 사용된다.
오답 이유‘SELECT 절 등 단일 값이 요구되는 곳에 주로 사용된다.’ 구문은 ‘서브쿼리의 실행 결과가 0건일 경우 에러를 발생시킨다.’과 실행 결과나 적용 조건이 다르다. 스칼라 서브쿼리는 결과가 0건이면 에러가 아니라 NULL을 반환한다. (단, 2건 이상이면 에러 발생) 이를 문항 조건에 적용하면 ‘서브쿼리의 실행 결과가 0건일 경우 에러를 발생시킨다.’을 선택한다. 따라서 4번 보기 ‘SELECT 절 등 단일 값이 요구되는 곳에 주로 사용된다.’의 적용 여부를 문제 조건과 대조해야 한다.
ANSWER & EXPLANATION
정답 3번
핵심 판단은 3번 ‘서브쿼리의 실행 결과가 0건일 경우 에러를 발생시킨다.’입니다. 스칼라 서브쿼리는 결과가 0건이면 에러가 아니라 NULL을 반환한다. (단, 2건 이상이면 에러 발생) 이를 문항 조건에 적용하면 ‘서브쿼리의 실행 결과가 0건일 경우 에러를 발생시킨다.’을 선택한다.