DB/Oracle
[서브쿼리] 단일행 서브쿼리
각시탈코더
2022. 2. 14. 15:42
단일행 서브쿼리
단일행 서브쿼리는 실행 결과가 단 하나의 행으로 나오는 서브쿼리다. 단일행 서브쿼리는 단일행 연산자를 사용하여 비교한다.
단일행 연산자
| > | >= | = | <= | < | <> | ^= | != |
| 초과 | 이상 | 같음 | 이하 | 미만 | 같지않음 | 같지않음 | 같지않음 |
단일행 서브쿼리와 날짜형 데이터
단일행 서브쿼리는 서브쿼리 결과 값이 날짜(DATE) 자료형일 때도 사용할 수 있다. 예를 들어 EMP테이블에서 SCOTT보다 빨리 입사한 사원 목록을 조회하려면 다음과 같이 서브쿼리를 활용한 SELECT문을 작성할 수 있다.
SELECT *
FROM EMP
WHERE HIREDATE < (SELECT HIREDATE
FROM EMP
WHERE ENAME = 'SCOTT');

단일형 서브쿼리와 함수
서브쿼리에서 특정 함수를 사용한 결과 값이 하나일 떄 단일행 서브쿼리로서 사용가능하다. 예를 들어 20번 부서에 속한 사원 중 전체 사원의 평균 급여보다 높은 급여를 받는 사원 정보와 소속 부서 정보를 함께 조회해보자.
SELECT E.EMPNO, E.ENAME, E.JOB, E.SAL, D.DEPTNO, D.DNAME, D.LOC
FROM EMP E, DEPT D
WHERE E.DEPTNO = D.DEPTNO
AND E.DEPTNO = 20
AND E.SAL > (SELECT AVG(SAL) FROM EMP);

출처:Do it! 오라클로 배우는 데이터베이스 입문(저자:이지훈 출판사:이지스퍼블리싱)