단일행 서브쿼리
EX) SELECT DNAME FROM DEPT WHERE DEPTNO = ( SELECT DEPTNO FROM EMP WHERE ENAME='SCOTT');
EX) SELECT ENAME, SAL FROM EMP WHERE SAL > ( SELECT AVG(SAL) FROM EMP);
다중행 서브쿼리
IN - IN 연산자는 메인 쿼리의 비교 조건에서 서브 쿼리의 출력결과와 하나라도 일치하면 메인 쿼리의 WHERE절이 참이 되는 연산자.
EX) SELECT ENAME, SAL, DEPTNO FROM EMP WHERE DEPTNO IN (SELECT DISTINCT DEPTNO FROM EMP WHERE SAL >= 3000);
ALL - ALL연산자는 메인쿼리의 비교조건이 서브 쿼리의 검색결과와 모든값이 일치해야 참... 검색한 값에 AND연산을 해서 모두 참이면 참이 ALL 은 모든 비교값 보다 큰지를 묻는 것이므로 최대값보다 더 크면 참이 됩니다.
EX) SELECT ENAME, SAL FROM EMP WHERE SAL > ALL(SELECT SAL FROM EMP WHERE DEPTNO = 30 );
ANY - ANY연산자의 조건은 메인 쿼리의 비교 조건이 서버쿼리의 검색결과와 하나 이상만 일치하면 참입니다. ANY는 찾아진 값에 대해서 하나라도 크면 참이 되는 셈이 됩니다 그러므로 검색한 값 중 에서 가장 작은 갑 ㅅ즉 최소값보다 크면 참이 됩니다.
EX) SELECT ENAME, SAL FROM EMP WHERE SAL > ANY ( SELECT SAL FROM EMP WHERE DEPTNO = 30);
'Oracle' 카테고리의 다른 글
오라클 테이블의 명령어 INSERT UPDATE DELETE MERGE (0) | 2014.11.12 |
---|---|
오라클 테이블 구조 생성, 변경 및 삭제하는 DDL (0) | 2014.11.12 |
오라클 조인 JOIN 뭘까용? (0) | 2014.11.12 |
오라클 그룹으로 묶을때 조건문. HAVING (0) | 2014.11.12 |
오라클 GROUP BY (0) | 2014.11.12 |