一連の条件を評価して、考えられる結果式のうちの 1 つを返します。
CASE には、次の 2 つの形式があります。
-
単純 CASE 関数では、1 つの式を一連の単純式と比較して結果を決定します。
-
検索 CASE 関数は、一連の論理式を評価して結果を決定します。
どちらの形式も、ELSE 引数 (省略可能) をサポートしています。

構文
CASE input_expression
WHEN when_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
]
END
CASE
WHEN Boolean_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
]
END

引数
-
input_expression
-
単純 CASE 形式を使用する場合に評価される式。input_expression 引数には、Microsoft SQL Server Compact 3.5 (SQL Server Compact 3.5) の任意の有効な式を指定できます。
- WHEN when_expression
-
単純 CASE 形式で input_expression と比較する単純式。when_expression 引数には、SQL Server の任意の有効な式を指定できます。input_expression と各 when_expression のデータ型は同一であるか、暗黙の変換によって同一の型になる必要があります。
-
n
-
複数の WHEN when_expression THEN result_expression 句、または複数の WHEN Boolean_expression THEN result_expression 句を指定できることを示すプレースホルダ。
- THEN result_expression
-
input_expression = when_expression が TRUE、または Boolean_expression が TRUE の場合に返される式。result expression 引数には、SQL Server の任意の有効な式を指定できます。
- ELSE else_result_expression
-
比較演算の評価が TRUE でなかった場合に返される式。この引数を省略し、比較演算の評価が TRUE でなかった場合、CASE は NULL を返します。else_result_expression 引数には、SQL Server の任意の有効な式を指定できます。else_result_expression とすべての result_expression のデータ型は同一であるか、暗黙の変換によって同一の型になる必要があります。
- WHEN Boolean_expression
-
検索 CASE 形式を使用するときに評価するブール式。Boolean_expression には、任意の有効な論理式を指定できます。

戻り値の型
result_expressions および任意の else_result_expression に含まれるデータ型の中から、優先順位の最も高いデータ型を返します。

戻り値
単純 CASE 関数 :
-
input_expression を評価し、次に指定の順序で各 WHEN 句の input_expression = when_expression を評価します。
-
TRUE と評価された最初の input_expression = when_expression の result_expression を返します。
-
input_expression = when_expression の評価が TRUE でなかった場合、ELSE 句が指定されていれば else_result_expression を、ELSE 句が指定されていなければ NULL を返します。
検索 CASE 関数 :
-
各 WHEN 句の Boolean_expression を指定の順序で評価します。
-
TRUE と評価された最初の Boolean_expression の result_expression を返します。
-
Boolean_expression の評価が TRUE でなかった場合、ELSE 句が指定されていれば else_result_expression を、ELSE 句が指定されていなければ NULL を返します。

例
次の例では、商品の出荷方法が返されます。
SELECT [Ship Via], CASE [Ship Via]
WHEN 1 THEN 'A.Datum'
WHEN 2 THEN 'Contoso'
WHEN 3 THEN 'Consolidated Messenger'
ELSE 'Unknown'
END
FROM Orders