pgsql case when用法
时间: 2024-09-18 07:11:13 浏览: 42
在PostgreSQL中,CASE WHEN是一个条件表达式,用于根据给定的条件返回不同的结果。它通常与聚合函数一起使用,比如COUNT、SUM、AVG等,来根据特定的判断执行计算。
基本语法如下:
```sql
SELECT column_name,
CASE
WHEN condition THEN expression_1
WHEN condition_2 THEN expression_2
[ ... ]
ELSE default_expression
END AS new_column_name
FROM table_name;
```
在这里,`condition`是你想要检查的逻辑,如果满足这个条件,那么就执行`expression_1`;如果不满足,再检查下一个`condition_2`,依此类推。如果所有的条件都不满足,则会执行`default_expression`。
例如,如果你有一个销售表,想按产品分类统计总销售额,并对每个类别设置默认值0,你可以这样做:
```sql
SELECT product_category,
SUM(CASE WHEN sale_status = 'completed' THEN sale_amount ELSE 0 END) AS total_sales
FROM sales
GROUP BY product_category;
```
在这个例子中,只有当`sale_status`为'completed'时,才计算`sale_amount`,否则将销售额设为0。
阅读全文