PostgreSQL CASE 表达式

CASE

CASE 表达式会检查条件,并在满足第一个条件时返回一个值(类似于 if-then-else 语句)。

一旦某个条件为真,它就会停止读取并返回结果。如果没有条件为真,则返回 ELSE 子句中的值。

如果没有 ELSE 部分且没有条件为真,它将返回 NULL。

实例

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

SELECT product_name,
CASE
  WHEN price < 10 THEN '低价产品'
  WHEN price > 50 THEN '高价产品'
ELSE
  '普通产品'
END
FROM products;

运行实例

使用别名

当没有为“case”字段指定列名时,解析器将使用 case 作为列名。

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

实例

同样的例子,但为 case 列添加了一个别名:

SELECT product_name,
CASE
  WHEN price < 10 THEN '低价产品'
  WHEN price > 50 THEN '高价产品'
ELSE
  '普通产品'
END AS "price category"
FROM products;

运行实例

您可以在我们的 PostgreSQL AS 章节中阅读有关别名的更多信息。