Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » Ultra Light データベース管理とリファレンス » Ultra Light SQL リファレンス » Ultra Light SQL 要素 » Ultra Light の式

 

CASE 式

SQL の条件式です。

構文 1
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;
構文 2
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;