case when里面套case when怎么写
时间: 2023-11-29 22:47:48 浏览: 79
oracle where case when where后面跟case when
在case when语句中嵌套case when语句,可以使用以下语法:
```
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN
CASE
WHEN condition3 THEN result3
WHEN condition4 THEN result4
ELSE result5
END
ELSE result6
END
```
其中,condition1和condition2是外层case when语句的条件,result1和result6是外层case when语句的结果。当condition2成立时,会执行内层的case when语句,condition3和condition4是内层case when语句的条件,result3、result4和result5是内层case when语句的结果。
举个例子,假设有一个表t,其中有两列a和b,现在需要根据a和b的值进行分类,当a=1时,根据b的值进行进一步分类,当a=2时,直接输出结果。可以使用以下语句:
```
SELECT
CASE
WHEN a = 1 THEN
CASE
WHEN b = 1 THEN 'a=1,b=1'
WHEN b = 2 THEN 'a=1,b=2'
ELSE 'a=1,b=other'
END
WHEN a = 2 THEN 'a=2'
ELSE 'a=other'
END AS result
FROM t;
```
阅读全文