CASE 表达式允许诸如 SELECT 语句这样的 SQL 语句返回几个可能的结果之一,依赖于这几个条件中那哪个求值为真。
在 CASE 表达式中,您必须包括至少一个 WHEN 子句。随后的 WHEN 子句和 ELSE 子句是可选的。您可在 SQL 语句中您可使用列表达式的任何地方使用通用的或线性的 CASE 表达式(例如,在 SELECT 语句的 Projection 子句中)。
搜索条件中的表达式或结果值表达式可包含子查询,且您可在另一 CASE 表达式中嵌套 CASE 表达式。
当在聚集表达式中出现 CASE 表达式时,您不可使用 CASE 表达式中的聚集函数。
您可指定触发器类型布尔运算符(DELETING、INSERTING、SELECTING 或 UPDATING)作为仅在触发器例程内的 CASE 表达式中的条件。
SELECT . . . SUM(orders.ship_weight) as o2, COUNT(DISTINCT CASE WHEN orders.backlog MATCHES 'n' THEN orders.order_num END ) AS o3, . . .在此,SUM 的参数为 DECIMAL(8,2) 列值,且 COUNT DISTINCT 聚集以 CASE 表达式作为它的参数。
请不要弄混 CASE 表达式与 SPL 的 CASE 语句,它们支持不同的语法和功能。