pgsql中case when怎么使用
时间: 2024-05-15 15:10:34 浏览: 8
在 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的case when
引用提供了一个关于使用CASE WHEN的例子。在PGSQL中,CASE WHEN语句用于根据条件判断给出不同的结果。在这个例子中,当name等于'张三'时,返回user表中id等于问号的name_id;当name等于'李四'时,返回user表中parent_id等于问号的name_id;否则返回NULL。
引用提供了一个高级用法的示例。在这个例子中,使用CASE WHEN统计分析返回结果。当risk_level为'较高'或'高'时,计数high加一;当risk_level不为空时,计数Num加一。
所以,对于pgsql的CASE WHEN语句,可以根据不同的条件给出不同的结果,并且可以用于统计分析。