SOME과 ANY는 명칭만 다를 뿐, 동일한 기능을 하는 연산자라고 생각하면 된다.
ANY, ALL은 서브쿼리와 함께 사용하는 다중 행 연산자이며, ANY는 조건을 만족하는 값이 하나라도 있으면 결과를 보여주고 ALL은 모든 값이 조건을 만족해야 결과를 보여준다.
ANY (SOME)
WHERE 100 = ANY (100, 200, 300) : ANY 값과 동일한 데이터인 100만 조회된다
WHERE 100 > ANY (100, 200, 300) : ANY의 최소값 100보다 큰 데이터인 200, 300이 조회된다
WHERE 100 >= ANY (100, 200, 300) : ANY의 최소값 100보다 크거나 같은 데이터인 100, 200, 300이 전부 조회된다
WHERE 100 < ANY (100, 200, 300) : ANY의 최대값 300보다 작은 데이터인 100, 200이 조회된다
WHERE 100 <= ANY (100, 200, 300) : ANY의 최대값 300보다 작거나 같은 데이터인 100, 200, 300이 전부 조회된다
WHERE 100 <> ANY (100, 200, 300) : ANY 값 중 모두 일치하지 않는 데이터가 조회된다
ANY의 값이 2개 이상인 경우, 해당 조건 의미 없이 모든 데이터가 조회된다
ALL
WHERE STUDENT > ALL (100, 200, 300) : ALL의 최대값 300보다 큰 데이터만 조회된다
WHERE STUDENT >= ALL (100, 200, 300) : ALL의 최대값 300보다 크거나 같은 데이터만 조회된다
WHERE STUDENT < ALL (100, 200, 300) : ALL의 최소값 100보다 작은 데이터만 조회된다
WHERE STUDENT <= ALL (100, 200, 300) : ALL의 최소값 100보다 작거나 같은 데이터만 조회된다
WHERE STUDENT = ALL (100, 200, 300) : ALL의 모든 값을 만족해야 데이터가 조회된다
ALL 값이 2개 이상인 경우, 조건을 만족할 수 없어 사용할 수 없다
WHERE STUDENT <> ALL (100, 200, 300) : ALL의 모든 값과 일치하지 않는 데이터만 조회된다
'BackEnd > DBMS' 카테고리의 다른 글
Oracle :: ORA-01476 - divisor is equal to zero 에러 (0) | 2020.03.03 |
---|---|
Oracle :: 배수 출력 쿼리 (0) | 2020.02.17 |
Oracle :: Procedure (프로시저) (0) | 2019.08.08 |
Oracle :: DB Function vs Procedure vs Package (0) | 2019.04.10 |
Oracle :: DB Link (Database Link) (0) | 2019.04.09 |