CASE (Entity SQL)
一連の Boolean
式を評価して結果を決定します。
構文
CASE
WHEN Boolean_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
]
END
引数
n
複数の 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
の一連の型の中から、最も優先順位の高い型を返します。
Remarks
Entity SQL の case 式は、Transact-SQL の case 式と似ています。 case 式を使用すると、適切な結果が得られる式を、一連の条件判定によって決めることができます。 この形式の case 式では、1 つまたは複数の Boolean
式によって、最終的に使用される式が決定されます。
CASE 関数は、各 WHEN 句の Boolean_expression
を指定された順序で評価し、 result_expression
として評価された最初の Boolean_expression
の true
を返します。 残りの式は評価されません。 Boolean_expression
の評価がいずれも true
でなかった場合、データベース エンジンは、ELSE 句が指定されていれば else_result_expression
を、ELSE 句が指定されていない場合は NULL 値を返します。
CASE ステートメントでマルチセットを取得することはできません。
例
次の Entity SQL クエリでは、CASE 式を使用して、一連の Boolean
式を評価し、結果を取得しています。 このクエリは、AdventureWorks Sales Model に基づいています。 このクエリをコンパイルして実行するには、次の手順を実行します。
「方法: PrimitiveType 結果を返すクエリを実行する」の手順に従います。
次のクエリを引数として
ExecutePrimitiveTypeQuery
メソッドに渡します。
CASE WHEN AVG({@score1,@score2,@score3}) < @total THEN TRUE ELSE FALSE END