SQL ANY , ALL , EXISTS , NOT EXISTS
ANY 연산자는 주로 서브쿼리에 사용되며 하나라도 만족하는 값이 있다면 true를 반환한다.
ANY(서브쿼리 or 값)
활용 예제 1) sal > 300 OR sal > 400 OR sal > 500 이므로 sal이 300보다 크면 조건을 만족한다.
SELECT ename, sal
FROM emp
WHERE sal > ANY(300, 400, 500);
활용 예제 2) 서브쿼리에서 값이 여러개 나올 수 있는 경우 ANY 연산자를 활용하였다.
SELECT ename, sal
FROM emp
WHERE sal > ANY( SELECT sal FROM emp WHERE deptno = 20 );
ALL 연산자는 전체 만족해야 true를 반환하는 특징을 가지고 있다.
ALL(서브쿼리 or 값)
활용 예제 1) sal > 300 AND sal > 400 AND sal > 500 이므로 sal이 500보다 크면 조건을 만족한다.
SELECT ename, sal
FROM emp
WHERE sal > ALL(300, 400, 500);
활용 예제 2) 서브쿼리에서 반환된 값들이 전부 true여야 한다.
SELECT ename, sal
FROM emp
WHERE sal > ALL( SELECT sal FROM emp WHERE deptno = 20);
EXISTS 조건식은 행의 존재 여부를 확인하여 true 값을 반환합니다. 반환값 타입 boolean
EXISTS(서브쿼리)
활용 예제) 서브쿼리에서 반환하는 행이 1개라도 있으면 true를 반환합니다.
SELECT ename, sal
FROM emp
WHERE EXISTS( SELECT * FROM emp WHERE sal = 300 );
NOT EXISTS 조건식은 반환된 행이 하나도 없어야 true 값을 반환합니다. 반환값 타입 boolean
NOT EXISTS(서브쿼리)
활용 예제) 서브쿼리에서 반환하는 행이 없어야 true를 반환합니다.
SELECT ename, sal
FROM emp
WHERE NOT EXISTS( SELECT * FROM emp WHERE sal = 300 );
'Certification > SQLP' 카테고리의 다른 글
[SQL] 집합 연산자 UNION / UNION ALL / INTERSECT / EXCEPT (0) | 2019.03.02 |
---|---|
[SQL] SELECT 문장 실행 순서 (0) | 2019.02.26 |
오라클 / SQL Server 단일행 NULL 관련 함수 (0) | 2019.02.25 |
오라클 SIMPLE_CASE_EXPRESSION vs SEARCHED_CASE_EXPRESSION (0) | 2019.02.25 |
오라클 DROP, TRUNCATE, DELETE 비교 (0) | 2019.02.25 |