Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
SQL の条件式です。
CASE expression1 WHEN expression2 THEN expression3, ... [ ELSE expression4 ] END
SELECT ID, ( CASE name WHEN 'Tee Shirt' THEN 'Shirt' WHEN 'Sweatshirt' THEN 'Shirt' WHEN 'Baseball Cap' THEN 'Hat' ELSE 'Unknown' END ) as Type FROM Product
CASE WHEN search-condition THEN expression1, ... [ ELSE expression2 ] END
互換性を保つために、この式は ENDCASE または END CASE で終了できます。
CASE 式は、正規表現が使用できればどこでも使用できます。
構文 1 CASE キーワードに続く式が最初の WHEN キーワードに続く式と等しい場合、対応する THEN キーワードの後の式が返されます。それ以外の場合、ELSE キーワードがあればそれに続く式が返されます。
たとえば、下記のコードでは CASE 式が SELECT 文の 2 番目の句として使用されています。この式によって、name カラムの値が Sweatshirt であるローが Product テーブルから選択されます。
構文 2 最初の WHEN キーワードに続く search-condition が TRUE の場合、対応する THEN キーワードに続く式が返されます。それ以外の場合、ELSE 句があればそれに続く式が返されます。
省略形 CASE 式の NULLIF 関数 NULLIF 関数は、CASE 文を省略形で記述する方法の 1 つです。NULLIF の構文は、次のとおりです。
NULLIF ( expression-1, expression-2 )
NULLIF は 2 つの式の値を比較します。1 番目の式と 2 番目の式が等しい場合、NULLIF は NULL を返します。1 番目の式と 2 番目の式が異なる場合、NULLIF は 1 番目の式を返します。
次の文では、CASE 式が SELECT 文の 3 番目の句として使用され、探索条件と文字列を関連付けています。name カラムの値が Tee Shirt の場合は、このクエリによって Sale が返されます。name カラムの値が Tee Shirt ではなく、quantity が 50 より大きい場合は、Big Sale が返されます。ただし、それ以外の場合は、このクエリによって Regular price が返されます。
SELECT ID, name, ( CASE WHEN name='Tee Shirt' THEN 'Sale' WHEN quantity >= 50 THEN 'Big Sale' ELSE 'Regular price' END ) as Type FROM Product