pgsql case when查询多个字段
时间: 2024-09-11 19:06:33 浏览: 98
在PostgreSQL中,`CASE WHEN` 语句用于条件判断,并可以根据满足的条件返回不同的值。如果你想根据多个字段进行查询并返回不同的结果,你可以组合多个 `WHEN` 子句。这是一个基本的语法示例:
```sql
SELECT column_name,
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN condition3 THEN result3
ELSE default_result
END AS calculated_column
FROM table_name;
```
在这个例子中:
- `column_name` 是你要查询的基础字段。
- `condition1`, `condition2`, 和 `condition3` 是对 `column_name` 中各字段值的条件判断,如果条件成立,则返回相应的 `result1`, `result2`, 或 `result3`。
- `default_result` 是当所有 `WHEN` 条件都不满足时返回的结果。
如果你需要同时根据两个字段的组合进行判断,可以在 `WHEN` 里包含这两个字段的操作。例如:
```sql
SELECT user_id,
CASE
WHEN status = 'active' AND age > 18 THEN 'Adult'
WHEN status = 'inactive' THEN 'Inactive'
ELSE 'Unknown'
END as user_status
FROM users;
```
这将根据用户的状态和年龄分别返回 'Adult', 'Inactive' 或者 'Unknown'。
阅读全文