Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
提供条件 SQL 表达式。
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;
CASE WHEN search-condition THEN expression1, ... [ ELSE expression2 ] END
出于兼容性考虑,此表达式可用 ENDCASE 或 END CASE 结尾。
Case 表达式可以在能够使用正则表达式的任何地方使用。
语法 1 如果 CASE 关键字后的表达式等于第一个 WHEN 关键字后的表达式,则返回相关联的 THEN 关键字后的表达式。否则,返回 ELSE 关键字后的表达式(如果已指定)。
例如,以下代码用 CASE 表达式作为 SELECT 语句的第二个子句。它从 Product 表中选择一行,其中名称列具有值 Sweatshirt。
语法 2 如果第一个 WHEN 关键字后的搜索条件为 TRUE,则返回相关联的 THEN 关键字后的表达式。否则,返回 ELSE 子句后的表达式(如果已指定)。
用于简写 CASE 表达式的 NULLIF 函数 NULLIF 函数提供了一种方法来以短格式编写某些 CASE 语句。NULLIF 的语法如下:
NULLIF ( expression-1, expression-2 )
NULLIF 比较两个表达式的值。如果第一个表达式的值与第二个表达式的值相等,NULLIF 返回 NULL。如果它们不相等,NULLIF 则返回第一个表达式。
以下语句使用 CASE 表达式作为 SELECT 语句的第三子句,以将字符串与搜索条件相关联。如果名称列的值为 Tee Shirt,则查询返回 Sale。如果名称列的值不是 Tee Shirt 且数量多于 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;