# 다중 열 서브쿼리


다중 열 서브쿼리란 서브쿼리의 결과값이 두개 이상의 컬럼을 반환하는 서브쿼리 입니다.


   


서브쿼리가 한번 실행되면서 모든 조건을 검색해서 주 쿼리로 넘겨 줍니다.


   


ex) SELECT empno, sal, deptno


FROM emp


WHERE (sal, deptno) IN ( SELECT sal, deptno


FROM emp


WHERE deptno = 30


AND comm is NOT NULL );


 


EMPNO SAL DEPTNO


———- ———- ———-


7521 1250 30


7654 1250 30


7844 1500 30


7499 1600 30


   


서브쿼리가 여러 조건별로 사용 되어서 결과값을 주 쿼리로 넘겨 줍니다.


   


ex) SELECT empno, sal, deptno


FROM emp


WHERE sal IN ( SELECT sal


FROM emp


WHERE deptno = 30


AND comm is NOT NULL )


AND deptno IN ( SELECT deptno


FROM emp


WHERE deptno = 30


AND comm is NOT NULL );


   


EMPNO SAL DEPTNO


———- ———- ———-


7521 1250 30


7654 1250 30


7844 1500 30


7499 1600 30


   


서브쿼리에서 null값이 반환되면 주 쿼리 에서는 어떠한 행도 반환되지 않습니다.

By haisins

오라클 DBA 박용석 입니다. haisins@gmail.com 으로 문의 주세요.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다