ケース式
大/小文字の式を使用すると、大/小文字または大/小文字のどちらかの構造を使用して条件ロジックを追加できます。
構文
case_expr ::= simple_case_expression | searched_case_expression
simple_case_expression ::= CASE input_expression
(WHEN when_expression THEN result_expression )...
[ ELSE else_result_expression ]
END
searched_case_expression ::= CASE
( WHEN boolean_expression THEN result_expression ) ...
[ ELSE else_result_expression ]
END
input_expression ::= expression
when_expression ::= expression
result_expression ::= value_returned_expression
else_result_expression ::= value_returned_expression
boolean_expression ::= boolean_returned_expression
- 単一の式を複数の潜在的な値に対して評価する場合は、単純なCASE式を使用します。
- 複数の独立したブール式を評価して結果を決定する必要がある場合は、検索されたCASE式を使用します。
例1: 単純なケース式
CASE CUSTOMERS.CUST_VALID
WHEN 'I' THEN 'Inactive' WHEN 'A' THEN 'Active'
ELSE 'Unknown'
END
この例では、CUST_VALID列の値がIの場合、Inactiveを返します。 値がAの場合は、Activeを返します。 どちらの条件も満たさない場合は、Unknownを返します。
例2: 検索されたケース式
CASE
WHEN CUSTOMERS.CUST_YEAR_OF_BIRTH <= 1973 THEN 'Segment A'
WHEN CUSTOMERS.CUST_YEAR_OF_BIRTH >1973 THEN 'Segment B'
ENDこの例では、
CUST_YEAR_OF_BIRTHが1973以下の場合、Segment Aが割り当てられます。 それ以外の場合は、Segment Bを割り当てます。 CASE WHEN ISNULL(CUSTOMERS.CUST_VALID) THEN 'Unknown' ELSE 'Known' END
この例では、CUST_VALIDがNULLの場合、Unknownを返します。 それ以外の場合は、Knownを返します。