1. ANY
EX) 서브쿼리를 통해 LEV='과장'인 직원의 SALARY를 TEMP에서 읽고 이중의 어떤 값 하나보다 큰 연봉을 가진 직원의 사번, 성명, 연봉을 읽어오는 쿼리를 만들어보자
SELECT EMP_ID, EMP_NAME, SALARY,LEV
FROM TEMP
WHERE SALARY > ANY (SELECT SALARY
FROM TEMP
WHERE LEV='과장');
SELECT LEV,SALARY FROM TEMP
WHERE LEV='과장' ;
위의 쿼리로 과장의 연봉중 가장 적은 연봉을 조회한 결과 39000000원이 가장적은 금액이었다.
위에 출력된 값들은 직급에 관계없이 모두 연봉 39000000원 이상 받는 직원을 출력함을 알 수 있다.
2.ALL
EX) 어떤 과장보다도 연봉이 많은 직원을 읽어보자
SELECT EMP_ID, EMP_NAME, SALARY,LEV
FROM TEMP
WHERE SALARY > ALL (SELECT SALARY
FROM TEMP
WHERE LEV='과장');
특별한 설명은 하지 않겠다. 직급이 과장인 어느 사람들보다 연봉이 많은 사람은 부장 김길동밖에 없는 것이다.
3. EXISTS
EX) ANY와 ALL의 첫번째 예제를 EXISTS로 바꿔 보자.
SELECT EMP_ID, EMP_NAME, SALARY
FROM TEMP A
WHERE EXISTS(SELECT B.SALARY
FROM TEMP B
WHERE B.LEV='과장'
AND A.SALARY>B.SALARY);
'oracle' 카테고리의 다른 글
DECODE (0) | 2013.10.31 |
---|---|
ROWNUM (0) | 2013.10.24 |
서브쿼리(SINGLE ROW 서브쿼리,MULTI ROW 서브쿼리) (0) | 2013.10.23 |
SELF JOIN (1) | 2013.10.21 |
Non-Equl Join(비등가 Join) (0) | 2013.10.21 |