코딩 이야기/MS SQL

MSSQL 서브쿼리 종류 및 사용법

안개소리 2025. 3. 28. 16:41

서브쿼리 종류 및 사용법

 종류  설명 / 예제
스칼라 서브쿼리 단일 값(스칼라 값)을 반환하는 서브쿼리입니다. SELECT 절, WHERE 절, HAVING 절 등에서 사용됩니다.

예제:
SELECT CustomerName,
       (SELECT MAX(OrderDate)
          FROM Orders
         WHERE Customers.CustomerID = Orders.CustomerID) AS LastOrderDate
  FROM Customers;
테이블 서브쿼리 하나 이상의 열과 행을 반환하는 서브쿼리입니다. 주로 FROM 절에서 테이블처럼 사용됩니다.

예제:
SELECT AVG(Price)
  FROM (SELECT Price FROM Products WHERE CategoryID = 1) AS Subquery;
행 서브쿼리 하나의 행을 반환하는 서브쿼리입니다. WHERE 절에서 행 단위로 비교할 때 사용됩니다.

예제:
SELECT * FROM Products
 WHERE (ProductID, Price) = (SELECT ProductID, MAX(Price) FROM Products);
상관 서브쿼리 외부 쿼리의 값을 참조하는 서브쿼리입니다. 외부 쿼리의 각 행에 대해 한 번씩 실행됩니다.

예제:
SELECT CustomerName FROM Customers
 WHERE EXISTS (SELECT * FROM Orders
                WHERE Customers.CustomerID = Orders.CustomerID
                  AND OrderDate > '2023-01-01');
비상관 서브쿼리 외부 쿼리의 값을 참조하지 않는 서브쿼리입니다. 외부 쿼리와 독립적으로 한 번만 실행됩니다.

예제:
SELECT * FROM Products
 WHERE Price > (SELECT AVG(Price) FROM Products);

 

참고사항

  • 서브쿼리는 다른 SQL 쿼리 내에 포함된 SQL 쿼리입니다.
  • 서브쿼리는 복잡한 데이터 검색 및 조작에 유용하게 사용됩니다.
  • 서브쿼리를 사용할 때는 가독성과 성능을 고려해야 합니다.