Q. 포드와 입사일이 같은 직원은?
SELECT ENAME
FROM EMP
WHERE HIREDATE = (SELECT HIREDATE
FROM EMP
WHERE ENAME = 'FORD');
Q. 포드와 워드의 월급과 같은 월급을 받고 있는 직원은?
SELECT ENAME
FROM EMP
WHERE SAL IN (SELECT SAL
FROM EMP
WHERE ENAME IN ('WARD','FORD'));
* IN 은 레코드가 두 개 또는 두 행 이상일 때 쓰인다.
ALL 연산자
SAL < ALL (100,200) 일 경우 SAL의 결과값은 ALL의 최소값 100미만을 찾음
SAL> ALL (100,200) 일 경우 SAL의 결과값은 ALL의 최대값 200 초과를 찾음
ANY 연산자
SAL > ANY(100, 200) 일 경우 SAL의 결과값은 ANY 안에 있는 100보다 큰 걸 찾음
SAL < ANY(100, 200) 일 경우 SAL의 결과값은 ANY 안에 있는 200보다 작은 걸 찾음.
EXISTS
서브 쿼리의 값 하나라도 만족하면 메인 쿼리를 실행한다.
EX)
SELECT EMPNO, SAL
FROM EMP
WHERE EXISTS(SELECT EMPNO
FROM EMP
WHERE SAL > 3000);
여기서 서브쿼리의 값이 메인쿼리에 존재한다면 메인쿼리의 모든 정보를 출력한다.
'DataBase > DQL' 카테고리의 다른 글
7/1 SQL 다중 컬럼 서브쿼리 (0) | 2021.07.01 |
---|---|
6/30 SQL 서브쿼리 (0) | 2021.06.30 |
6/30 SQL ANSI (0) | 2021.06.30 |
6/29 SQL 조인 (0) | 2021.06.30 |
6/29 SQL 그룹함수 보충 (0) | 2021.06.29 |