SQL之case when then用法

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

--简单case函数
case sexwhen '1' then '男'when '2' then '女’else '其他' end
--case搜索函数
case when sex = '1' then '男'when sex = '2' then '女'else '其他' end  

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

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

--比如说,下面这段sql,你永远无法得到“第二类”这个结果
case when col_1 in ('a','b') then '第一类'when col_1 in ('a') then '第二类'else '其他' end  

下面实例演示:

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

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

转载于:https://www.cnblogs.com/nyfz/p/9111831.html

mysql if--else相关推荐

  1. mysql 快捷查询数据库各表占用空间,mysql查看索引占用空间,mysql查看数据占用空间

    先贴一张图! 第一步,"很重要" 在mysql中,有一个创建之初自带的库information_schema,这个库中包含着数据库相关信息,查询数据占用空间就是使用该库,所以首先进 ...

  2. mysql并发更新数据,多用户并发修改数据解决方案。

    mysql并发更新数据,多用户并发修改数据解决方案. 在系统中,有一些如余额.资产.积分的数据,是要保证数据一致性的.如,一个人使用两个设备同时进行消费操作,如何保证数据一致性的问题. 我们一起来思考 ...

  3. mysql查询字段大小写结果相同,mysql大小写查询不敏感,mysql5.7查询不区分大小写解决方案。

    下面有两条sql,主键查询,在mysql中查询到的结果相同. SELECT* FROM USER WHEREid = 'EM58hdK4nXC';SELECT* FROM USER WHEREid = ...

  4. 数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法

    数据库中自定义排序 场景:有一张banner表,表中有一个status字段,有0, 1, 2三个状态位,我想要 1,0,2的自定义排序(这里是重点),然后再进行之上对sequence字段进行二次排序( ...

  5. mybatis查询报错:com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from string

    mybatis查询报错: com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from strin ...

  6. docker一步安装mysql,docker的魅力就在于此

    正常来说,使用docker安装东西的步骤是serach它有没有,然后pull它 这里其实只要一步(如果你没有安装过.没有端口占用等问题的话!!) $ docker run -d -p 3306:330 ...

  7. 设置腾讯云linux服务器中 MySQL 允许远程访问

    申请了一台linux腾讯云服务器,想要把数据库搭建在上面,本地的Windows直接可以访问 以下就是具体的操作流程,首先你需要安装好一个mysql,安装方法–>mysql安装(Linux) 接着 ...

  8. Linux安装mysql,一步到位!

    今天在腾讯云上面买了一个服务器,想要把自己的项目部署一下,就要安装mysql,以下是我的安装步骤,在网上有很多人把install敲错了,还有的少-get,种种错误试完之后,我决定发一篇 sudo ap ...

  9. Mysql函数group_concat、find_in_set 多值分隔字符字段进行数据库字段值翻译

    Mysql函数group_concat.find_in_set进行数据库字段值翻译 场景 配方表:记录包含的原料 sources表示原料,字段值之间用逗号分隔 原料表:对应原料id和原料名称 现需要查 ...

  10. 浅谈MySQL存储引擎-InnoDBMyISAM

    浅谈MySQL存储引擎-InnoDB&MyISAM 存储引擎在MySQL的逻辑架构中位于第三层,负责MySQL中的数据的存储和提取.MySQL存储引擎有很多,不同的存储引擎保存数据和索引的方式 ...

最新文章

  1. Java学习day_012(OOP):抽象类、接口和内部类(上)
  2. mysql常见死锁_MySQL死锁系列-常见加锁场景分析
  3. 构建单层单向RNN网络对MNIST数据集分类
  4. B站爱情怀,投资者只看利益
  5. Python基础教程:迭代器
  6. 计算机论文指导书,计算机毕业论文指导书.doc
  7. 【链接】调查显示:超20%美国大学生曾花学生贷款投
  8. 兼容所有浏览器的CSS3圆角效果
  9. JAVA-配置path环境
  10. 应付账款账龄分析模板_企业财务报表分析论文应如何着手?
  11. 解决sonar scanner扫描报错Please provide compiled classes of your project with sonar.java.binaries property
  12. 【编撰】linux IPC 001 - 概述
  13. android编程多组件布局,Android把多个控件定义成一个整体的布局类使用
  14. 图神经网络将成AI下一拐点!MIT斯坦福一文综述GNN到底有多强
  15. .p7b证书转成iis使用的.pfx证书
  16. linux ps2鼠标驱动,a1657苹果鼠标驱动 最新版:VoodooPS2Controller v1.9
  17. 华为2020秋招笔试试题
  18. 开发步骤_APP开发和上市的步骤
  19. 2020.12.10丨cufflinks 简介及使用说明
  20. Halcon的常见错误

热门文章

  1. php 中class,PHP5中的类(class) (转)
  2. 一篇博客读懂设计模式之---动态代理与反射
  3. apk提取加密素材_从apk包中提取unity资源
  4. 选择座位html,影厅座位预览效果(css3)_html/css_WEB-ITnose
  5. maven中的oracle,maven中安装SQL SERVER 和 Oracle JDBC驱动
  6. spring boot整合shiro继承redis_spring-boot-plus集成Shiro+JWT权限管理
  7. wxpython 调用子窗口_wxpython入门第一步(简单例子)
  8. mysql查看现在使用的引擎_mysql查看当前库使用的引擎及简单操作
  9. Java Swing专栏订阅须知《必读》
  10. notification源码分析_Ceilometer之notification agent代码分析