一連の Boolean 式を評価して結果を決定します。
CASE
WHEN Boolean_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
]
END
引数
- n
複数の WHEN when_expression THEN result_expression 句または複数の WHEN Boolean_expression THEN result_expression 句を使用できることを示すプレースホルダです。
- THEN result_expression
Boolean_expression の評価が true の場合に返される式です。result expression は任意の有効な式です。
- ELSE else_result_expression
比較操作の評価がいずれも true でなかった場合に返される式です。この引数を省略し、比較操作のいずれも true でなかった場合、CASE は NULL を返します。else_result_expression は任意の有効な式です。else_result_expression と任意の result_expression のデータ型は同一であるか、暗黙的な変換によって同一の型になる必要があります。
- WHEN Boolean_expression
検索 CASE 形式を使用した場合に評価される Boolean 式です。Boolean_expression は、任意の有効な Boolean 式です。
戻り値
result_expression およびオプションの else_result_expression の一連の型の中から、最も優先順位の高い型を返します。
解説
Entity SQL の case 式は、Transact-SQL の case 式と似ています。case 式を使用すると、適切な結果が得られる式を、一連の条件判定によって決めることができます。この形式の case 式では、1 つまたは複数の Boolean 式によって、最終的に使用される式が決定されます。
CASE 関数は、各 WHEN 句の Boolean_expression を指定された順序で評価し、true として評価された最初の Boolean_expression の result_expression を返します。Boolean_expression の評価がいずれも true でなかった場合、データベース エンジンは、ELSE 句が指定されていれば else_result_expression を、ELSE 句が指定されていない場合は NULL 値を返します。
CASE ステートメントでマルチセットを取得することはできません。
例
次の Entity SQL クエリでは、CASE 式を使用して、一連の Boolean 式を評価し、結果を取得しています。このクエリは、AdventureWorks Sales Model に基づいています。このクエリをコンパイルして実行するには、次の手順を実行します。
「PrimitiveType 結果を返すクエリの実行方法 (EntityClient)」の手順に従います。
次のクエリを引数として
ExecutePrimitiveTypeQuery
メソッドに渡します。
CASE WHEN AVG({25,12,11}) < 100 THEN TRUE ELSE FALSE END
出力を次に示します。
Value: True
参照
リファレンス
ELSE (Entity SQL)
WHEN (Entity SQL)
THEN (Entity SQL)
SELECT (Entity SQL)