"ANY ALL SOME 서브쿼리"의 두 판 사이의 차이
DB CAFE
(→ANY SOME ALL 구문) |
|||
68번째 줄: | 68번째 줄: | ||
WHERE S2.DEPT_NM_KOR = '마케팅부서') | WHERE S2.DEPT_NM_KOR = '마케팅부서') | ||
</source> | </source> | ||
+ | |||
+ | [[category:oracle]] |
2023년 7월 27일 (목) 16:38 기준 최신판
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
1 ANY SOME ALL 구문[편집]
- ANY(SOME), ALL은 주로 서브쿼리와 함께 사용하는 다중 행 연산자
- ANY는 조건을 만족하는 값이 하나라도 있으면 결과를 리턴# ALL은 모든 값이 조건을 만족해야 결과를 리턴
- SOME은 ANY와 이름만 다를뿐 동일한 기능의 연산자
1.1 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 = '마케팅부서')
1.2 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 = '마케팅부서')