9.2.1 스칼라 서브쿼리
스칼라 서브쿼리는 메인쿼리의 SELECT 절에 오는 서브쿼리로, 구문은 다음과 같습니다.
구문 9-1
SELECT 칼럼1, 칼럼2, ...
(SELECT ...
FROM ...
WHERE ...
) [AS] 별칭1
FROM ...
WHERE ... ;
구문에서 보듯이 독립적인 SELECT 문을 소괄호로 둘러싸서 SELECT 절 안에 넣어 사용할 수 있습니다. SELECT 절에는 보통 칼럼이나 표현식을 기술해 해당 칼럼에 입력된 값을 조회합니다. 따라서 SELECT 절 안에 기술된 서브쿼리도 결과적으로 하나의 칼럼이나 표현식처럼 사용됩니다. 이때 서브쿼리가 단일 값을 반환해서 스칼라 서브쿼리라고 합니다.
단일 값을 반환한다는 것은 스칼라 서브쿼리 전체가 반환하는 결과 집합이 단일 값이라는 뜻입니다. 앞에서 설명했듯이 서브쿼리가 하나의 칼럼(표현식) 역할을 하기 때문이죠. 따라서 스칼라 서브쿼리의 SELECT 절에는 단일 칼럼(표현식)이 와야 하며 여러 개의 칼럼(표현식)을 기술할 수 없습니다. 또한 스칼라 서브쿼리는 단일 건(로우)를 반환해야 하고, 여러 로우를 반환하면 오류가 발생합니다.