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; |
NULLIF 関数は、CASE 文を省略形で記述する方法の 1 つです。NULLIF の構文は、次のとおりです。
NULLIF ( expression-1, expression-2 )
NULLIF は 2 つの式の値を比較します。1 番目の式と 2 番目の式が等しい場合、NULLIF は NULL を返します。1 番目の式と 2 番目の式が異なる場合、NULLIF は 1 番目の式を返します。
CASE 文の構文と CASE 式の構文を混同しないでください。CASE 文の詳細については、CASE 文を参照してください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |