機械翻訳について

ケース式

大/小文字の式を使用すると、大/小文字または大/小文字のどちらかの構造を使用して条件ロジックを追加できます。

構文
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_VALIDNULLの場合、Unknownを返します。 それ以外の場合は、Knownを返します。