ALL (Transact-SQL)ALL (Transact-SQL)

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server даБаза данных SQL AzureнетХранилище данных SQL AzureнетParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Сравнивает скалярное значение с набором значений, состоящим из одного столбца.Compares a scalar value with a single-column set of values.

Значок ссылки на статью Синтаксические обозначения в Transact-SQLArticle link icon Transact-SQL Syntax Conventions

СинтаксисSyntax

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

АргументыArguments

scalar_expressionscalar_expression
Любое допустимое выражение expression.Is any valid expression.

{ = | <> | != | > | >= | !> | < | <= | !< }{ = | <> | != | > | >= | !> | < | <= | !< }
Оператор сравнения.Is a comparison operator.

subquerysubquery
Вложенный запрос, возвращающий результирующий набор, состоящий из одного столбца.Is a subquery that returns a result set of one column. Тип данных возвращаемого столбца должен совпадать с типом данных аргумента scalar_expression.The data type of the returned column must be the same data type as the data type of scalar_expression.

Ограниченная инструкция SELECT, в которой запрещено предложение ORDER BY, а также ключевое слово INTO.Is a restricted SELECT statement, in which the ORDER BY clause and the INTO keyword aren't allowed.

Типы результатаResult Types

BooleanBoolean

Значение результатаResult Value

Возвращает TRUE, если заданное сравнение возвращает TRUE для всех пар (scalar_expression , x) , где x является значением из набора строк, состоящего из одного столбца.Returns TRUE when the comparison specified is TRUE for all pairs (scalar_expression,x), when x is a value in the single-column set. В противном случае возвращает значение FALSE.Otherwise returns FALSE.

RemarksRemarks

Если аргумент scalar_expression установлен в значение ALL, будет выполнено сравнение каждого значения, возвращаемого вложенным запросом.ALL requires the scalar_expression to compare positively to every value that is returned by the subquery. Например, если вложенный запрос возвращает значения 2 и 3, то при scalar_expression <= ALL будет возвращаться TRUE для значения scalar_expression, равного 2.For instance, if the subquery returns values of 2 and 3, scalar_expression <= ALL (subquery) would evaluate as TRUE for a scalar_expression of 2. Если вложенный запрос возвращает значения 2 и 3, то при scalar_expression = ALL (subquery) будет возвращаться FALSE, так как некоторые значения вложенного запроса (значение 3) могут не отвечать критериям этого выражения.If the subquery returns values of 2 and 3, scalar_expression = ALL (subquery) would evaluate as FALSE, because some of the values of the subquery (the value of 3) wouldn't meet the criteria of the expression.

Инструкции, которым необходим аргумент scalar_expression для сравнения каждого значения, возвращенного вложенным запросом, перечислены в разделе SOME | ANY (Transact-SQL).For statements that require the scalar_expression to compare positively to only one value that is returned by the subquery, see SOME | ANY (Transact-SQL).

В этой статье приводятся ссылки на выражение ALL при его использовании совместно с вложенными запросами.This article refers to ALL when it is used with a subquery. ALL может также использоваться с инструкциями UNION и SELECT.ALL can also be used with UNION and SELECT.

ПримерыExamples

В приведенном ниже примере показано создание хранимой процедуры, определяющей, могут ли в течение заданного количества дней быть выполнены все части заказа с указанным идентификатором SalesOrderID из базы данных AdventureWorks2012AdventureWorks2012.The following example creates a stored procedure that determines whether all the components of a specified SalesOrderID in the AdventureWorks2012AdventureWorks2012 database can be manufactured in the specified number of days. В этом примере вложенный запрос используется для создания списка числовых значений DaysToManufacture для всех компонентов с указанным идентификатором SalesOrderID, после чего происходит проверка того, что время производства всех заказов (DaysToManufacture) находится в пределах указанного числа дней.The example uses a subquery to create a list of the number of DaysToManufacture values for all of the components of the specific SalesOrderID, and then confirms that all the DaysToManufacture are within the number of days specified.

-- 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. В него входит один компонент, производство которого занимает 2 дня, и два компонента, производство которых занимает 0 дней.To test the procedure, execute the procedure by using the SalesOrderID 49080, which has one component requiring 2 days and two components that require 0 days. Первая из нижеследующих инструкций отвечает этим критериям.The first statement below meets the criteria. Второй запрос — нет.The second query doesn't.

EXECUTE DaysToBuild 49080, 2 ;  

Ниже приводится результирующий набор.Here is the result set.

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

EXECUTE DaysToBuild 49080, 1 ;  

Ниже приводится результирующий набор.Here is the result set.

Some items for this order can't be manufactured in specified number of days or less.

См. также:See Also

CASE (Transact-SQL) CASE (Transact-SQL)
Выражения (Transact-SQL) Expressions (Transact-SQL)
Встроенные функции (Transact-SQL) Built-in Functions (Transact-SQL)
LIKE (Transact-SQL) LIKE (Transact-SQL)
Операторы (Transact-SQL) Operators (Transact-SQL)
SELECT (Transact-SQL) SELECT (Transact-SQL)
WHERE (Transact-SQL) WHERE (Transact-SQL)
IN (Transact-SQL)IN (Transact-SQL)