다음을 통해 공유


ALL(Transact-SQL)

적용 대상: Microsoft Fabric의 SQL ServerAzure SQL Database Azure SQL Managed Instance SQL 데이터베이스

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

Transact-SQL 구문 표기 규칙

구문

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

인수

scalar_expression
유효한 입니다.

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

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

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

결과 형식

Boolean

결과 값

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

설명

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)를 참조하세요.

두 식의 동등성을 비교하고 true 또는 false 결과를 보장하려면 IS [NOT] DISTINCT FROM(Transact-SQL)을 참조하세요.

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

예제

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

-- Uses AdventureWorks

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 can''t be manufactured in specified number of days or less.' ;  

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

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 can't be manufactured in specified number of days or less.

참고 항목