행위

ANY ALL SOME 서브쿼리

DB CAFE

thumb_up 추천메뉴 바로가기


1 ANY SOME ALL 구문[편집]

  1. ANY(SOME), ALL은 주로 서브쿼리와 함께 사용하는 다중 행 연산자
  2. 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 = '마케팅부서')