case具有两种格式。简单case函数和case搜索函数。

1 --简单case函数  
2 case sex  
3   when '1' then '男'  
4   when '2' then '女’  
5   else '其他' end  
6 --case搜索函数  
7 case when sex = '1' then '男'  
8      when sex = '2' then '女'  
9      else '其他' end

这两种方式,可以实现相同的功能。简单case函数的写法相对比较简洁,但是和case搜索函数相比,功能方面会有些限制,比如写判定式。

还有一个需要注重的问题,case函数只返回第一个符合条件的值,剩下的case部分将会被自动忽略。

实例演示:
首先创建一张users表,其中包含id,name,sex三个字段,表内容如下:

ID        NAME                 SEX
---------- -------------------- ----------
1          张一                 
2          张二                 1
3          张三                 
4          张四                
5          张五                 2
6          张六                 1
7          张七                 2
8          张八                 1

1、上表结果中的"sex"是用代码表示的,希望将代码用中文表示。可在语句中使用case语句:

1 select u.id,u.name,u.sex,  
2   (case u.sex  
3    when 1 then '男'  
4    when 2 then '女'  
5    else '空的'  
6    end  
7    )性别  
8 from users u;
ID NAME                        SEX 性别
--------------------------------------- 
1 张一                              空的
2 张二                          1   男
3 张三                              空的
4 张四                              空的
5 张五                          2   女
6 张六                          1   男
7 张七                          2   女
8 张八                          1   男

2、 将sum与case结合使用,可以实现分段统计。
如果现在希望将上表中各种性别的人数进行统计,sql语句如下:

来源:https://www.cnblogs.com/rxhuiu/p/9134103.html

最后修改:2021 年 11 月 17 日
如果觉得我的文章对你有用,请随意赞赏