본문 바로가기

oracle

ANY, ALL,EXISTS 사용 예

반응형

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