pgsql中case when怎么使用
时间: 2024-05-15 08:10:34 浏览: 129
在 PostgreSQL 中,CASE WHEN 表达式是一种非常常用的条件表达式,可以根据不同的条件返回不同的值。其语法如下:
```
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END;
```
其中,condition 是需要判断的条件,result 是满足条件时返回的结果,default_result 是所有条件都不满足时返回的默认结果。
例如,我们可以使用 CASE WHEN 表达式来根据不同的分数段返回不同的等级:
```
SELECT
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 80 THEN 'B'
WHEN score >= 70 THEN 'C'
ELSE 'D'
END AS grade
FROM
students;
```
这样就可以根据学生的分数来返回对应的等级了。
相关问题
pgsql中case when多条件用法
在 PostgreSQL 中,可以使用 `CASE WHEN` 条件语句进行多条件判断。
`CASE WHEN` 语法如下:
```
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE result
END
```
其中,`condition1`、`condition2`等为条件表达式,`result1`、`result2`等为对应条件表达式成立时的返回值,`ELSE` 为可选项,表示当所有条件表达式都不成立时的返回值。
如果需要同时判断多个条件,可以在 `WHEN` 后面添加条件表达式。例如:
```
CASE
WHEN condition1 AND condition2 THEN result1
WHEN condition3 THEN result2
...
ELSE result
END
```
其中,`AND` 表示多个条件同时成立时的逻辑运算符,还可以使用 `OR` 表示多个条件中只要有一个成立即可。
需要注意的是,当多个条件同时成立时,只会执行第一个成立的条件语句,并返回对应的结果。例如:
```
SELECT CASE
WHEN 1 = 1 THEN 'A'
WHEN 2 = 2 THEN 'B'
ELSE 'C'
END;
```
以上 SQL 语句的执行结果为 `A`,因为第一个条件 `1 = 1` 成立,会直接返回对应的结果 `'A'`,不会去执行后面的条件语句。
PGSQL where case when
在PGSQL中,WHERE CASE WHEN语句是一种条件表达,它允许根据不同的条件来选择不同的操作或返回不同的结果。它的语法如下:
```
SELECT column1, column2, ...
FROM table_name
WHERE CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE resultN
END;
```
在这个语法中,condition1、condition2等是条件表达式,result1、result2等是对应条件为真时返回的结果。
下面是一个示例,假设我们有一个名为students的表,其中包含id、name和age字段。我们想要选择年龄大于18岁的学生,并根据他们的年龄分别返回不同的结果:
```
SELECT id, name,
CASE
WHEN age > 18 THEN '成年'
ELSE '未成年'
END AS age_group
FROM students;
```
这个查询将返回一个结果集,其中包含学生的id、name和age_group字段。age_group字段根据学生的年龄是否大于18岁来进行分类。
阅读全文