프로그래밍/Oracle
[Oracle] 다중 컬럼 서브 쿼리
eunki
2022. 6. 2. 17:43
728x90
다중 컬럼 서브 쿼리의 문법
- non pair wise 방식
- pair wise 방식
non pair wise 방식보다는 pair wise 방식이 코딩이 더 짧아서 더 선호되는 SQL로 보이나
주의해야 할 사항은 pair wise 방식과 non pair wise 방식이 출력 되는 결과가 서로 다르다.
결론을 먼저 얘기하면 non pair wise 방식이 훨씬 결과가 더 많이 나온다.
oracle 의 경우 pair wise 방식과 non pair wise 방식 둘 다 지원된다.
그러나 ms 사에서 만든 데이터베이스 소프트웨어인 mssql 은 non pair wise 만 지원된다.
예제 1. 부서 번호가 30번인 사원들과 월급이 같고 커미션이 같은 사원들의 이름, 월급, 커미션, 부서 번호를 출력
-- 1. non pair wise 방식
select ename, sal, comm, deptno
from emp
where sal in (select sal
from emp
where deptno = 30)
and comm in (select comm
from emp
where deptno = 30);
-- 2. pair wise 방식
select ename, sal, comm, deptno
from emp
where (sal, comm) in (select sal, comm
from emp
where deptno = 30);
pair wise 방식으로는 30번 부서 번호에 해당하는 사원들만 나온다.
pair wise 방식은 30번 부서 번호인 사원들이 받는 그 월급과 커미션이어야만 다른 부서 번호라도 출력될 수 있다.
728x90