次の方法で共有


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 は任意の有効な式です。
  • 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 に基づいています。このクエリをコンパイルして実行するには、次の手順を実行します。

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

  2. 次のクエリを引数として 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)

概念

Entity SQL リファレンス