PostgreSQL CASE 表达式
CASE
CASE 表达式遍历条件,并在满足第一个条件时返回一个值(如 if-then-else 语句)。
一旦条件为 true,它将停止读取并返回结果。如果没有条件为 true,则返回 ELSE 子句中的值。
如果没有 ELSE 部分并且没有任何条件为 true,则返回 NULL。
实例
如果价格满足特定条件,则返回特定值:
SELECT product_name,CASEWHEN price < 10 THEN 'Low price product'WHEN price > 50 THEN 'Highprice product'ELSE'Normal product'ENDFROMproducts;
与别名一起
如果没有为 case 字段指定列名,解析器将使用 case 作为列名。
要指定列名,请在 END 关键字后添加别名。
实例
相同的示例,但使用了 case 列的别名:
SELECT product_name,CASEWHEN price < 10 THEN 'Low price product'WHEN price > 50 THEN 'Highprice product'ELSE'Normal product'END AS "price category"FROMproducts;