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

適用対象: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

スカラー値を単一列で構成される値のセットと比較します。Compares a scalar value with a single-column set of values.

記事リンク アイコン Transact-SQL 構文表記規則Article link icon Transact-SQL Syntax Conventions

構文Syntax

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

引数Arguments

scalar_expressionscalar_expression
任意の有効なを指定します。Is any valid expression.

{ = | <> | != | > | >= | !> | < | <= | !< }{ = | <> | != | > | >= | !> | < | <= | !< }
比較演算子です。Is a comparison operator.

subquerysubquery
1 列の結果セットを返すサブクエリです。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

指定された比較が (scalar_expression , x) の任意の組で TRUE の場合、TRUE を返します。ここで、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.

解説Remarks

ALL の場合、scalar_expression ではサブクエリによって返されるすべての値に対し肯定的な比較を行う必要があります。ALL requires the scalar_expression to compare positively to every value that is returned by the subquery. たとえば、サブクエリによって値 2 と 3 が返される場合、scalar_expression <= ALL (subquery) は、scalar_expression が 2 の場合、TRUE と評価されます。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.

サブクエリによって返される 1 つの値に対し肯定的な比較を行うために 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 日の部品が 1 つと 0 日の部品が 2 つが含まれています。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. 2 番目のクエリはそうではありません。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)