다음을 통해 공유


ALL(Transact-SQL)

스칼라 값을 단일 열 집합 값과 비교합니다.

항목 링크 아이콘 Transact-SQL 구문 표기 규칙

구문

scalar_expression { = | <> | != | > | >= | !> | < | <= | !< } ALL ( subquery )

인수

  • scalar_expression
    유효한 입니다.

  • { = | <> | != | > | >= | !> | < | <= | !< }
    비교 연산자입니다.

  • subquery
    한 열의 결과 집합을 반환하는 하위 쿼리입니다. 반환된 열의 데이터 형식은 scalar_expression의 데이터 형식과 같아야 합니다.

    하위 쿼리는 제한된 SELECT 문이며 ORDER BY 절 및 INTO 키워드는 허용되지 않습니다.

결과 형식

Boolean

결과 값

모든 쌍(scalar_expression**,** x)에 대해 지정된 비교값이 TRUE일 경우 TRUE를 반환하고, 그렇지 않으면 FALSE를 반환합니다. 이때 x는 단일 열 집합의 값입니다.

주의

ALL의 경우 하위 쿼리에 의해 반환된 모든 값을 정확하게 비교하려면 scalar_expression이 필요합니다. 예를 들어 하위 쿼리에서 값 2와 3을 반환할 경우 scalar_expression <= ALL(하위 쿼리)은 2의 scalar_expression에 대해 TRUE로 계산됩니다. 하위 쿼리에서 값 2와 3을 반환할 경우에는 하위 쿼리 값(값 3)의 일부가 식의 조건을 만족하지 않으므로 scalar_expression = ALL(하위 쿼리)은 FALSE로 계산됩니다.

하위 쿼리에서 반환된 하나의 값을 정확하게 비교할 수 있도록 scalar_expression을 필요로 하는 문에 대한 내용은 SOME | ANY(Transact-SQL)를 참조하십시오.

이 항목에서는 하위 쿼리에 사용되는 경우의 ALL을 참조합니다. ALL은 UNIONSELECT에도 사용될 수 있습니다.

다음 예에서는 AdventureWorks2012 데이터베이스에서 지정한 SalesOrderID의 모든 구성 요소를 지정된 기간 내에 제조할 수 있는지 여부를 결정하는 저장 프로시저를 만듭니다. 이 예에서는 하위 쿼리를 사용하여 특정 SalesOrderID의 모든 구성 요소에 대해 DaysToManufacture 값의 숫자 목록을 만든 다음 모든 DaysToManufacture가 지정된 기간 내에 있는지 확인합니다.

USE AdventureWorks2012 ;
GO

CREATE PROCEDURE DaysToBuild @OrderID int, @NumberOfDays int
AS
IF 
@NumberOfDays >= ALL
   (
    SELECT DaysToManufacture
    FROM Sales.SalesOrderDetail
    JOIN Production.Product 
    ON Sales.SalesOrderDetail.ProductID = Production.Product.ProductID 
    WHERE SalesOrderID = @OrderID
   )
PRINT 'All items for this order can be manufactured in specified number of days or less.'
ELSE 
PRINT 'Some items for this order cannot be manufactured in specified number of days or less.' ;

프로시저를 테스트하려면 2일이 필요한 한 개의 구성 요소 및 0일이 필요한 두 개의 구성 요소가 포함되어 있는 SalesOrderID 49080을 사용하여 프로시저를 실행합니다. 아래 첫 번째 문은 조건을 만족합니다. 두 번째 쿼리는 조건을 만족하지 않습니다.

EXECUTE DaysToBuild 49080, 2 ;

결과 집합은 다음과 같습니다.

All items for this order can be manufactured in specified number of days or less.

EXECUTE DaysToBuild 49080, 1 ;

결과 집합은 다음과 같습니다.

Some items for this order cannot be manufactured in specified number of days or less.

참고 항목

참조

CASE(Transact-SQL)

식(Transact-SQL)

기본 제공 함수(Transact-SQL)

LIKE(Transact-SQL)

연산자(Transact-SQL)

SELECT(Transact-SQL)

WHERE(Transact-SQL)

IN(Transact-SQL)