論理関数 - IIF (Transact-SQL)Logical Functions - IIF (Transact-SQL)

適用対象: ○SQL Server (2012 以降) ○Azure SQL Database XAzure SQL Data Warehouse XParallel Data Warehouse APPLIES TO: yesSQL Server (starting with 2012) yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

SQL ServerSQL Server ではブール式が true または false のいずれに評価されるかによって、2 つの値のいずれかを返します。Returns one of two values, depending on whether the Boolean expression evaluates to true or false in SQL ServerSQL Server.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions

構文Syntax

  
IIF ( boolean_expression, true_value, false_value )  

引数Arguments

boolean_expressionboolean_expression
有効なブール式です。A valid Boolean expression.

この引数がブール式でない場合、構文エラーが発生します。If this argument is not a Boolean expression, then a syntax error is raised.

true_valuetrue_value
boolean_expression が true に評価された場合に返す値。Value to return if boolean_expression evaluates to true.

false_valuefalse_value
boolean_expression が false に評価された場合に返す値。Value to return if boolean_expression evaluates to false.

戻り値の型Return Types

内の型からの優先順位が最も高いデータ型を返します true_valuefalse_valueです。Returns the data type with the highest precedence from the types in true_value and false_value. 詳細については、「データ型の優先順位 (Transact-SQL)」を参照してください。For more information, see Data Type Precedence (Transact-SQL).

RemarksRemarks

IIF は CASE 式を簡略化して書き込みます。IIF is a shorthand way for writing a CASE expression. 最初の引数として渡されたブール式を評価し、評価の結果に基づいて他の 2 つの引数のいずれかを返します。It evaluates the Boolean expression passed as the first argument, and then returns either of the other two arguments based on the result of the evaluation. つまり、 true_value ブール式が true の場合、返されると、 false_value ブール式が false または不明のかどうかに返されます。That is, the true_value is returned if the Boolean expression is true, and the false_value is returned if the Boolean expression is false or unknown. 任意の型の true_valuefalse_value を指定できます。true_value and false_value can be of any type. ブール式、NULL 処理、および戻り値の型に対する CASE 式に適用されるのと同じ規則が IIF にも適用されます。The same rules that apply to the CASE expression for Boolean expressions, null handling, and return types also apply to IIF. 詳細については、を参照してください。 場合 (&) #40 です。TRANSACT-SQL と #41;.For more information, see CASE (Transact-SQL).

IIF が CASE に変換されるという事実は、この関数の動作の他の側面にも影響を与えます。The fact that IIF is translated into CASE also has an impact on other aspects of the behavior of this function. CASE 式では最大 10 のレベルまで入れ子が許容されるため、IIF ステートメントでも最大 10 のレベルまで入れ子が許容されます。Since CASE expressions can be nested only up to the level of 10, IIF statements can also be nested only up to the maximum level of 10. また、IIF は、意味が同じ CASE 式として他のサーバーにリモート処理を行い、リモート処理された CASE 式のすべての動作を実行します。Also, IIF is remoted to other servers as a semantically equivalent CASE expression, with all the behaviors of a remoted CASE expression.

使用例Examples

A.A. 簡単な IIF の例Simple IIF example

DECLARE @a int = 45, @b int = 40;  
SELECT IIF ( @a > @b, 'TRUE', 'FALSE' ) AS Result;  

以下に結果セットを示します。Here is the result set.

Result  
--------  
TRUE  
  
(1 row(s) affected)  

B.B. NULL 定数を使用する IIFIIF with NULL constants

SELECT IIF ( 45 > 30, NULL, NULL ) AS Result;  

このステートメントの結果はエラーになります。The result of this statement is an error.

C.C. NULL パラメーターを使用する IIFIIF with NULL parameters

DECLARE @P INT = NULL, @S INT = NULL;  
SELECT IIF ( 45 > 30, @p, @s ) AS Result;  

以下に結果セットを示します。Here is the result set.

Result  
--------  
NULL  
  
(1 row(s) affected)  

参照See Also

CASE (Transact-SQL) CASE (Transact-SQL)
選択 (& a) #40 です。TRANSACT-SQL と #41 です。CHOOSE (Transact-SQL)