我的编程空间,编程开发者的网络收藏夹
学习永远不晚

sql中如何使用case when

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

sql中如何使用case when

这篇文章主要介绍了sql中如何使用case when,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

sql中case when的用法

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

1、简单case函数

case sex
  when '1' then '男'
  when '2' then '女’
  else '其他' end

2、case搜索函数

case when sex = '1' then '男'
     when sex = '2' then '女'
     else '其他' end</span>

这两种方式,可以实现相同的功能。简单case函数的写法相对比较简洁,但是和case搜索函数相比,功能方面会有些限制,比如写判定式。(免费学习视频教程推荐:mysql视频教程)

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

比如说,下面这段sql,你永远无法得到“第二类”这个结果

case when col_1 in ('a','b') then '第一类'
     when col_1 in ('a') then '第二类'
     else '其他' end

实例演示:

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

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

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

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

2、如果不希望列表中出现"sex"列,语句如下:

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

3、将sum与case结合使用,可以实现分段统计。

如果现在希望将上表中各种性别的人数进行统计,sql语句如下:

select
    sum(case u.sex when 1 then 1 else 0 end)男性,
    sum(case u.sex when 2 then 1 else 0 end)女性,
    sum(case when u.sex <>1 and u.sex<>2 then 1 else 0 end)性别为空
  from users u;
 
        男性         女性       性别为空
---------- ---------- ----------
         3          2          0
 
--------------------------------------------------------------------------------
SQL> select
    count(case when u.sex=1 then 1 end)男性,
    count(case when u.sex=2 then 1 end)女,
    count(case when u.sex <>1 and u.sex<>2 then 1 end)性别为空
  from users u;
 
        男性          女       性别为空
---------- ---------- ----------
         3          2          0

感谢你能够认真阅读完这篇文章,希望小编分享的“sql中如何使用case when”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

sql中如何使用case when

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

sql case when的使用方法

CASE WHEN语句是SQL中的一种条件判断语句,用于根据不同的条件返回不同的值。基本语法如下:CASEWHEN condition1 THEN result1WHEN condition2 THEN result2...ELSE r
sql case when的使用方法
2024-04-09

关于sql中case when用法

在SQL中,CASE WHEN语句是一种条件表达式,用于根据指定的条件返回不同的结果。它的基本语法如下:CASE WHEN condition1 THEN result1WHEN condition2 THEN result2...ELS
关于sql中case when用法
2024-04-09

sql中case when语句的用法

case when 语句用于 sql 中根据指定条件评估表达式并返回不同值。它的语法包含 when 子句(条件表达式和返回表达式)、else 子句(默认表达式)和 end 关键字。它可用于各种场景,包括分配值、修改结果和转换数据格式。CAS
sql中case when语句的用法
2024-04-28

SQL之CASE WHEN怎么用

小编给大家分享一下SQL之CASE WHEN怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!简单CASE WHEN函数:CASE SCORE WHEN A T
2023-06-20

sql中when和case啥意思

sql中的when和case是用于条件检查和返回指定值的关键字。when用于指定条件,如果条件为真,则执行随后的语句;case是控制流语句,根据满足的条件执行不同的语句,语法为:case when then when then ..
sql中when和case啥意思
2024-04-28

用case when优化Sql语句

用case when优化Sql语句 有些时候想直接从数据库查询数据,并导出,但一些类型或状态存储的是01等数字,你想显示对应的文字,这个时候就可以使用case...when语句了。结构case...when...then...when...the
用case when优化Sql语句
2020-06-19

mysql中case when怎么使用

mysql 中的 case when 语句是一种条件语句,用于根据指定的条件对数据执行不同的操作。其语法为:case when condition1 then result1 when condition2 then result2...
mysql中case when怎么使用
2024-05-30

SQL中case when then else end用法实例

目录一、阐述二、具体使用1.已知数据按照另外一种方式进行分组,分析。2.用一个sql语句完成不同条件的分组。补充:对case when 的理解总结总结一、阐述case when then else end 可以理解为Java的if-els
2023-02-01

SQL中case when then else end用法实例

CASEWHENTHENELSEEND是一个固定搭配,这样排列是想把通过格式把逻辑展示出来,CASE告诉计算机接下来是条件句式了,下面这篇文章主要给大家介绍了关于SQL中case when then else end用法的相关资料,需要的朋友可以参考下
2023-02-01

sql中case when是什么意思

case when 语句是一种条件语句,用于根据条件评估多个表达式并返回不同值。它从上到下评估条件,返回第一个为真的条件对应的值,如果没有真条件,则返回默认值(可选)。CASE WHEN 语句定义:SQL 中的 CASE WHEN 语句
sql中case when是什么意思
2024-04-28

sql中where后面能用case when吗

在 sql 中,case when 可以在 where 子句中使用。用于在条件成立或不成立时指定不同的结果,从而过滤数据,仅选择满足特定条件的行。语法为: where case when then when then ... els
sql中where后面能用case when吗
2024-05-09

oracle中的case when怎么使用

在Oracle中,CASE WHEN语句用于根据指定的条件执行不同的操作。它的基本语法如下:CASEWHEN condition1 THEN result1WHEN condition2 THEN result2...ELSE result
2023-08-23

编程热搜

目录