CASE 表达式提供条件 SQL 表达式。Case 表达式可以在任何能够使用表达式的地方使用。
CASE 表达式的语法如下:
CASE expression WHEN expression THEN expression, ... [ ELSE expression ] { END | END CASE }
如果 CASE 语句后的表达式等于 WHEN 语句后的表达式,则返回 THEN 语句后的表达式。否则,返回 ELSE 语句后的表达式(如果它存在)。
例如,以下代码用 CASE 表达式作为 SELECT 语句的第二个子句。
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 语句的第三子句,以将字符串与搜索条件相关联。
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 语句。NULLIF 的语法如下:
NULLIF ( expression-1, expression-2 )
NULLIF 比较两个表达式的值。如果第一个表达式的值与第二个表达式的值相等,NULLIF 返回 NULL。如果它们不相等,NULLIF 则返回第一个表达式。
不要将 CASE 表达式和 CASE 语句的语法相混淆。有关 CASE 语句的信息,请参见CASE 语句。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |