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

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL リファレンス » SQL の使用 » SQL 言語の要素 »

 

CASE 式

CASE 式は条件付きの SQL 式を提供します。CASE 式は、式が使用できればどこでも使用できます。

CASE 式の構文は、次のとおりです。

CASE expression
WHEN expression
THEN expression, ...
[ ELSE expression ]
{ END | END CASE }

CASE 文に続く式が WHEN 文に続く式と等しい場合、THEN 文の後の式に復帰します。それ以外の場合、ELSE 文があればそれに続く式に復帰します。

たとえば、次のコードでは CASE 式が SELECT 文の 2 番目の句として使用されています。

SELECT ID,
   ( CASE Name
      WHEN 'Tee Shirt' then 'Shirt'
      WHEN 'Sweatshirt' then 'Shirt'
      WHEN 'Baseball Cap' then 'Hat'
      ELSE 'Unknown'
   END ) as Type
FROM Products;

代替構文は、次のとおりです。

CASE
WHEN search-condition
THEN expression, ...
[ ELSE expression ]
END [ CASE ]

WHEN 文の後の探索条件が満たされた場合、THEN 文に続く式に復帰します。それ以外の場合、ELSE 文があればそれに続く式に復帰します。

たとえば、次の文では、CASE 式が SELECT 文の 3 番目の句として使用され、探索条件と文字列を関連付けています。

SELECT ID, Name,
   ( CASE
      WHEN Name='Tee Shirt' then 'Sale'
      WHEN Quantity >= 50  then 'Big Sale'
      ELSE 'Regular price'
   END ) as Type
FROM Products;
省略形 CASE 式の NULLIF 関数

NULLIF 関数は、CASE 文を省略形で記述する方法の 1 つです。NULLIF の構文は、次のとおりです。

NULLIF ( expression-1, expression-2 )

NULLIF は 2 つの式の値を比較します。1 番目の式と 2 番目の式が等しい場合、NULLIF は NULL を返します。1 番目の式と 2 番目の式が異なる場合、NULLIF は 1 番目の式を返します。

CASE 文は CASE 式とは異なります。

CASE 文の構文と CASE 式の構文を混同しないでください。CASE 文の詳細については、CASE 文を参照してください。