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_expressionBoolean_expressiontrue に評価されると返される式です。 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_expressiontrueを返します。 残りの式は評価されません。 Boolean_expression の評価がいずれも trueでなかった場合、データベース エンジンは、ELSE 句が指定されていれば else_result_expression を、ELSE 句が指定されていない場合は NULL 値を返します。

CASE ステートメントでマルチセットを取得することはできません。

次の Entity SQL クエリでは、CASE 式を使用して、一連の Boolean 式を評価し、結果を取得しています。 このクエリは、AdventureWorks Sales Model に基づいています。 このクエリをコンパイルして実行するには、次の手順を実行します。

  1. 方法: PrimitiveType 結果を返すクエリを実行する」の手順に従います。

  2. 次のクエリを引数として ExecutePrimitiveTypeQuery メソッドに渡します。

CASE WHEN AVG({@score1,@score2,@score3}) < @total THEN TRUE ELSE FALSE END

関連項目