다른 명령
ANY SOME ALL 구문
- ANY(SOME), ALL은 주로 서브쿼리와 함께 사용하는 다중 행 연산자
- ANY는 조건을 만족하는 값이 하나라도 있으면 결과를 리턴# ALL은 모든 값이 조건을 만족해야 결과를 리턴
- SOME은 ANY와 이름만 다를뿐 동일한 기능의 연산자
ANY 조건 예시 (만족하는 값 하나만 있으면 됨)
조건 | 결과 | 설명 |
---|---|---|
1000 > ANY (500, 1000, 2000) | TRUE | ANY 값에 1000 보다 작은 500이 있으므로 TRUE |
1000 = ANY (500, 1000, 2000) | TRUE | ANY 값에 같은 값 1000이 있으므로 TRUE |
2000 < ANY (500, 1000, 2000) | FALSE | ANY 값에 2000 보다 큰 값이 없으므로 FALSE |
= ANY 하나라도 만족하는 값이 있으면 결과를 리턴 (IN과 동일) > ANY 값들 중 최소값 보다 크면 결과를 리턴 >= ANY 값들 중 최소값 보다 크거나 같으면 결과를 리턴 < ANY 값들 중 최대값 보다 작으면 결과를 리턴 <= ANY 값들 중 최대값 보다 작거나 같으면 결과를 리턴 <> ANY 모든 값들 중 다른 값만 리턴 (값이 하나일 때만 가능, 사용X)
- ANY 예시
SELECT * FROM AMT_MST_TEST T1 WHERE T1.SALARY > ANY(SELECT S1.SALARY FROM AMT_MST_TEST S1 LEFT JOIN DEPT_MST_TEST S2 ON (S2.DEPT_CD = S1.DEPT_CD) WHERE S2.DEPT_NM_KOR = '마케팅부서')
ALL 조건 예시 (모든 값을 만족해야 함)
조건 | 결과 | 설명 |
---|---|---|
1000 > ALL (500, 1000, 2000) | FALSE | 1000이 ALL의 모든 값 보다 커야하므로 FALSE |
1000 = ALL (500, 1000, 2000) | FALSE | 1000이 ALL의 모든 값과 동일해야 하므로 FALSE |
3000 > ALL (500, 1000, 2000) | TRUE | 3000은 ALL의 모든 값 보다 크므로 TRUE |
> ALL 값들 중 최대값 보다 크면 결과를 리턴 >= ALL 값들 중 최대값 보다 크거나 같으면 결과를 리턴 < ALL 값들 중 최소값 보다 작으면 결과를 리턴 <= ALL 값들 중 최소값 보다 작거나 같으면 결과를 리턴 = ALL 모든 값들과 같아야 결과를 리턴 (값이 하나일 때만 가능, 사용X) <> ALL 모든 값들과 다르면 결과를 리턴
- ALL예시
SELECT * FROM AMT_MST_TEST T1 WHERE T1.SALARY > ALL(SELECT S1.SALARY FROM AMT_MST_TEST S1 LEFT JOIN DEPT_MST_TEST S2 ON (S2.DEPT_CD = S1.DEPT_CD) WHERE S2.DEPT_NM_KOR = '마케팅부서')