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

SAP Sybase SQL Anywhere 16.0 (中文) » SQL Anywhere 服务器 - SQL 参考 » SQL 语言元素 » 表达式

 

CASE 表达式

CASE 表达式提供条件 SQL 表达式。Case 表达式可以在任何能够使用表达式的地方使用。

CASE 表达式的语法如下:

CASE expression-1
WHEN expression-2
THEN expression-3, ...
[ ELSE expression-4 ]
{ END | END CASE }

如果 CASE 子句后的表达式等于 WHEN 子句后的表达式,则返回 THEN 语句后的表达式。否则,返回 ELSE 语句后的表达式(如果它存在)。

如果 ELSE 子句不存在并且 expression-1expression-2...expression-n 值中的任何一个都不匹配,则 CASE 表达式将返回 NULL。

例如,以下代码用 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 GROUPO.Products;

也可以使用以下语法:

CASE
WHEN search-condition
THEN expression-1, ...
[ ELSE expression-2 ]
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 GROUPO.Products;
 用于简写 CASE 表达式的 NULLIF 函数
 标准和兼容性
 另请参见