자격증/SQLD

(다중행 서브쿼리) ALL / ANY

dev? 2024. 11. 14. 16:25
반응형

ALL : 메인 쿼리 조건이 서브쿼리의 모든 값에 대해 참이 되어야 조건이 만족됩니다.

SELECT ENAME, JOB, SAL
FROM EMP
WHERE SAL > ALL(SELECT SAL FROM EMP WHERE JOB='SALESMAN');

> 서브쿼리 결과

- ALL보다 커야 하기 때문에 서브쿼리 결과 중 제일 큰값이 기준이됨 

아래의 MAX로 대체 가능하다

SELECT ENAME, JOB, SAL
FROM EMP
WHERE SAL > (SELECT MAX(SAL) FROM EMP WHERE JOB='SALESMAN');

 

ANY: 메인 쿼리 조건이 서브쿼리의 하나 이상의 값에 대해 참이 되면 조건이 만족됩니다.

SELECT ENAME, JOB, SAL
FROM EMP
WHERE SAL > ANY(SELECT SAL FROM EMP WHERE JOB='SALESMAN');

> 서브쿼리 결과

- ANY보다 커야 하기 때문에 서브쿼리 결과 중 제일 작은 값이 기준이됨 

아래의 MIN로 대체 가능하다

SELECT ENAME, JOB, SAL
FROM EMP
WHERE SAL > (SELECT MIN(SAL) FROM EMP WHERE JOB='SALESMAN');
반응형