으나님의 잡다한 개발상식
(SQL) 다중 행 SUBQUERY 비교 연산자 본문
1) IN
메인쿼리의 비교 조건이 서브쿼리의 결과 중 하나만 동일하면 참이 됨
SELECT ENAME, DNAME, SAL
FROM EMP, DEPT
WHERE EMP.DEPTNO = DEPT.DEPTNO
AND EMP.EMPNO
IN (SELECT EMPNO FROM EMP WHERE SAL >2000) /*급여(SAL)가 2000 이상인 사원번호를 조회*/
2) ALL
메인쿼리와 서브쿼리의 결과가 모두 동일하면 참이 됨
SELECT *
FROM EMP
WHERE DEPTNO <= ALL(20, 30); /*DEPTNO가 20, 30보다 작거나 같은 것을 조회*/
3) ANY
메인 쿼리의 비교조건이 서브쿼리의 결과 중 하나 이상 동일하면 참이 됨
SELECT *
FROM EMP
WHERE DEPTNO < ANY(20, 30) ; /*DEPTNO가 20보다 작거나 30보다 작은 것을 조회*/
4) EXISTS
메인 쿼리와 서브 쿼리의 결과가 하나라도 존재하면 참이 됨
SELECT ENAME, DNAME, SAL
FROM EMP, DEPT
WHERE EMP.DEPTNO=DEPT.DEPTNO
AND EXIST (SELECT 1 FROM EMP WHERE SAL > 2000); /*급여(SAL)가 2000 이상인 사원이 있으면 조회됨*/
'SQL' 카테고리의 다른 글
(SQL) 그룹함수(ROLLUP, GROUPING, GROUPING SETS, CUBE) (0) | 2020.05.27 |
---|---|
(SQL) 서브쿼리 종류 (2) | 2020.05.27 |
(SQL) 계층형 조회 (0) | 2020.05.27 |
(SQL) MINUS (0) | 2020.05.26 |
(SQL) CROSS JOIN (0) | 2020.05.26 |