Data Base_Oracle/SQL

SQL 다중 행 Sub Query_EXISTS 연산자

pathas 2020. 1. 7. 22:56

EXISTS

서브쿼리에서 적어도 1개의 행을 리턴하면 참,
실행결과가 없다면 거짓

# 예제

{ 문제 }
▷ emp테이블에서 적어도 한명의 사원으로부터
보고를 받을 수 있는 사원을 찾아서 사번, 이름, 업무, 급여 출력

 

{ 에러 }
▶ [ SQL> select empno, ename, job, sal from emp
where exist (select * from emp where emp.empno=mgr);
ORA-00936: 누락된 표현식 ]
※ Oracle 10g 까지는 실행되지만 그 이후 버전에서는 테이블에 별칭을 부여해야 함
연산자도 exist에서 exists로 변경

 

{ Exists 풀이 }

▶▶ [ SQL> select empno, ename, job, sal from emp e
where exists (select * from emp where e.empno=mgr); ]

EMPNO ENAME JOB SAL
7902 FORD ANAYST 3000
7698 BLAKE MANAGER 2850
... ... ... ...

서브 쿼리의 결과 값이 하나라도 있다면 참이 반환되는 Exists 연산자에 대해 알아보았습니다.