PostgreSQL CASE 表达式

CASE

CASE 表达式遍历条件,并在满足第一个条件时返回一个值(如 if-then-else 语句)。

一旦条件为 true,它将停止读取并返回结果。如果没有条件为 true,则返回 ELSE 子句中的值。

如果没有 ELSE 部分并且没有任何条件为 true,则返回 NULL

实例

如果价格满足特定条件,则返回特定值:

  1. SELECT product_name,
  2. CASE
  3. WHEN price < 10 THEN 'Low price product'
  4. WHEN price > 50 THEN 'High
  5. price product'
  6. ELSE
  7. 'Normal product'
  8. END
  9. FROM
  10. products;

与别名一起

如果没有为 case 字段指定列名,解析器将使用 case 作为列名。

要指定列名,请在 END 关键字后添加别名。

实例

相同的示例,但使用了 case 列的别名:

  1. SELECT product_name,
  2. CASE
  3. WHEN price < 10 THEN 'Low price product'
  4. WHEN price > 50 THEN 'High
  5. price product'
  6. ELSE
  7. 'Normal product'
  8. END AS "price category"
  9. FROM
  10. products;