Scalar Subquery란?
SELECT 절에서 사용하는 Subquery 이다.
Scalar Subquery의 특징
한 개의 로우만 반환 한다.
메인 쿼리에서 추출되는 데이터 건 수 만큼 수행되기 때문에 조인으로 수행 될 때보다 수행회수가 적을 수 있다.
일치하는 값이 없는 경우 NULL을 반환 한다.
코드성 테이블에서 코드값을 조회 할 때, 불필요한 조인을 하지 않기 위해 많이 사용한다.
Scalar Subquery 예제
아래는 일반적인 Scalar Subquery 예이다.
-- 직업이 ‘MANAGER’인 사원의 사원명, 부서명을 조회하는 예제SELECT ename, (SELECT dname FROM dept d WHERE d.deptno = e.deptno) deptnoFROM emp eWHERE job ='MANAGER';ENAME DEPTNO---------- --------------JONES RESEARCHBLAKE SALESCLARK ACCOUNTINGNULL값을 반환하는 Outer Join형태의 Scalar Subquery 예
-- Scalar Subquery는 일치하는 값이 없으면 NULL을 반환하므로 Outer Join과 같은 형태이다.-- 아래는 부서별 최대 급여정보 조회 예이다.-- 부서 40에 해당하는 직원이 없기 때문에 최대 급여가 조회 되지 않는다.SELECT d.deptno, d.dname, (SELECT MAX(sal) FROM emp WHERE deptno = d.deptno) sal FROM dept d;-- 결과가 동일한 Outer Join 예이다.SELECT d.deptno, d.dname, MAX(e.sal) FROM dept d, emp e WHERE d.deptno = e.deptno(+) GROUP BY d.deptno, d.dname ORDER bY d.deptno;DEPTNO DNAME SAL------ ----------- ----- 10 ACCOUNTING 5000 20 RESEARCH 3000 30 SALES 2850 40 OPERATIONS'Database > Oracle SQL' 카테고리의 다른 글
| 10.1. 인덱스(Index) (0) | 2019.04.24 |
|---|---|
| 9.2. 데이터 사전(Data Dictionary) 정보조회 (0) | 2019.04.24 |
| 9.1. 데이터 사전(Data Dictionary)이란? (0) | 2019.04.24 |
| 7.7. UNION [ALL], INTERSECT, MINUS 연산자 (0) | 2019.04.19 |
| 7.5. Inline View (From절 Subquery) (0) | 2019.04.19 |
| 7.4. Multiple-Column Subquery (0) | 2019.04.19 |
| 7.3. Multiple-Row Subquery (0) | 2019.04.19 |
| 7.2. Single-Row Subquery (0) | 2019.04.18 |