SQL Server/실기 정리

SQL Server 35강 - ANY 연산자를 활용한 조건 비교 서브쿼리

코딩하는냥이 2025. 6. 4. 12:41
반응형

이번 글에서는 ANY 키워드를 이용하여 서브쿼리 결과 중 하나라도 조건을 만족하면 TRUE가 되는 비교 방식을 실습했습니다.
ANY는 다중 결과를 반환하는 서브쿼리와 함께 사용되는 연산자로, IN과 비슷하지만 비교 연산자와 함께 사용 가능하다는 차이가 있습니다.


📌 예제 코드 ①: = + ANY

SELECT * 
FROM nasdaq_company
WHERE symbol = ANY (
    SELECT symbol 
    FROM nasdaq_company 
    WHERE symbol IN ('MSFT', 'AMD', 'AMZN')
);

💬 설명

  • 서브쿼리의 결과 중 하나라도 symbol과 같으면 참
  • 사실상 IN ('MSFT', 'AMD', 'AMZN')과 같은 효과

📌 예제 코드 ②: < + ANY

SELECT * 
FROM nasdaq_company
WHERE symbol < ANY (
    SELECT symbol 
    FROM nasdaq_company 
    WHERE symbol IN ('MSFT', 'LTCH', 'ZY')
);

💬 설명

  • symbol이 서브쿼리 결과 중 어느 하나보다 작으면 참
  • 예: symbol < 'ZY', symbol < 'MSFT', symbol < 'LTCH' 중 하나라도 만족하면 출력됨

📌 예제 코드 ③: > + ANY

SELECT * 
FROM nasdaq_company
WHERE symbol > ANY (
    SELECT symbol 
    FROM nasdaq_company 
    WHERE symbol IN ('MSFT', 'LTCH', 'ZY')
);

💬 설명

  • symbol이 서브쿼리 결과 중 어느 하나보다 크면 참
  • 예: symbol > 'LTCH', symbol > 'MSFT', symbol > 'ZY' 중 하나라도 참이면 출력

💡 포인트 정리

  • ANY: 서브쿼리 결과 중 하나 이상과 조건을 만족하면 참
  • = + ANY → IN과 거의 동일
  • < + ANY: 서브쿼리 값 중 가장 큰 값보다 작으면 항상 참
  • > + ANY: 서브쿼리 값 중 가장 작은 값보다 크면 참
  • 반대로 ALL은 모든 값에 대해 조건을 만족해야 참

📌 정리하자면, 이번 강의에서는 ANY 연산자를 사용해 서브쿼리와 비교 조건을 조합하여
동적이고 유연한 조건 필터링을 실습했습니다.
ANY는 IN의 확장처럼 사용할 수 있으며, >, < 같은 비교 연산자와 함께 사용하면
보다 정밀한 조건 지정이 가능합니다.