라일락 꽃이 피는 날

[Oracle] 다중 컬럼 서브 쿼리 본문

프로그래밍/Oracle

[Oracle] 다중 컬럼 서브 쿼리

eunki 2022. 6. 2. 17:43
728x90

다중 컬럼 서브 쿼리의 문법

  1. non pair wise 방식
  2. 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