CASE (Entity SQL)
一連の 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 is any valid expression.
- ELSE else_result_expression
比較操作の評価がいずれも true でなかった場合に返される式です。 この引数を省略し、比較演算のいずれも true に評価されなかった場合、CASE は NULL を返します。 else_result_expression is any valid 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 に基づいています。 このクエリをコンパイルして実行するには、次の手順を実行します。
Follow the procedure in PrimitiveType 結果を返すクエリの実行方法 (EntityClient).
Pass the following query as an argument to the
ExecutePrimitiveTypeQuery
method:
CASE WHEN AVG({@score1,@score2,@score3}) < @total THEN TRUE ELSE FALSE END
参照
リファレンス
ELSE (Entity SQL)
WHEN (Entity SQL)
THEN (Entity SQL)
SELECT (Entity SQL)