Subquery3: exists연산자, not exists연산자
exists연산자
- 서브쿼리의 결과 집합에 행이 존재하는 지 확인하는 연산자.
- 서브쿼리로부터 결과값이 존재(exist)하면 true를 반환.
- 서브쿼리로부터 결과값이 존재하지않으면 false를 반환.
- 상호관련서브쿼리임
1 | //exists연산자 기본형 |
exists연산자 예시 : employees테이블로 부터 자기 자신이 매니저인 사원의 employee_id, last_name, department_id 출력하는 쿼리
1 | //exist사용 |
not exists연산자 예시 : 사원이 없는 부서 찾는 쿼리
1 | //not exists사용 |
- no row인 경우는? null값때문!!!
- 근데 에러가 아닌 no row가 나오는 이유는? where는 조건절이기때문에 조건이 없다고해서 select구문이 에러가 나진않는다.
- null값 해결법 => nvl()함수사용 또는 not null 연산자 사용
- 테이블 규모가 클때(500행이상)는 함수(nvl)보다 연산자(not null)이 성능이 더 좋다