[ ORACLE 서브쿼리와 ANY,ALL,IN에 대하여... ]
메인 쿼리 안에서 메인 쿼리의 중간 결과로 사용되는 쿼리문을 "서브쿼리"라고 하는데,
서브 쿼리를 작성할 때 고려해야할 점은, 서브쿼리의 결과값이 단일 튜플이 나올 수도 있지만 다중 튜플일 경우이다.
일반적으로 salary(급여)가 (13000,6000,7000) 이 중 하나인 경우( salary = 13000 or salary = 6000, salary = 7000 )는
간단하게 salary IN (서브 쿼리) 로 "IN"을 사용해 작성하면 되지만
">"와 같은 연산자는 IN을 사용할 수가 없는 단일 비교 연산자이다. 이러한 경우에는 ANY와 ALL을 사용하게 된다.
ANY는 해당 비교 연산의 or결과로 ALL은 and 결과로 연산이 되는데 예를들자면
salary > ANY(다중 튜플을 결과로하는 서브쿼리) 는
salary > 13000 or salary > 6000 or salary > 7000 의 결과가 된다. 즉, salary > 6000을 만족하는 결과들이 될 것이고,
salary > ALL(다중 튜플을 결과로하는 서브쿼리) 는
salary > 13000 and salary > 6000 and salary > 7000의 결과임으로, salary > 13000 을 만족하는 결과가 나올 것이다.
다음 아래는 해당 내용에 대한 예제 코드와 주석문이다.
'스터디 > DB(ORACLE)' 카테고리의 다른 글
ORACLE DML( insert, update, delete, select ) (0) | 2017.09.06 |
---|---|
ORACLE DDL( create, drop, alter, truncate ) (0) | 2017.09.06 |
ORACLE JOIN(Inner join,Outer Join,Self Join) (0) | 2017.09.05 |
ORACLE 그룹핑 GROUP BY, HAVING, ROLLUP (0) | 2017.09.05 |
ORACLE 날짜함수, 변환함수, decode(), case() (0) | 2017.09.04 |