Share via


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

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

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

  1. Follow the procedure in PrimitiveType 結果を返すクエリの実行方法 (EntityClient).

  2. 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)

概念

Entity SQL リファレンス