SQL利用Case When Then多条件判断

第一种用法

用一个SQL语句完成不同条件的分组。这是一种用法 抄别人的  合组合函数一起使用

有如下数据
国家(country) 性别(sex) 人口(population)
中国 1 340
中国 2 260
美国 1 45
美国 2 55
加拿大 1 51
加拿大 2 49
英国 1 40
英国 2 60

按照国家和性别进行分组,得出结果如下
国家 男 女
中国 340 260
美国 45 55
加拿大 51 49
英国 40 60

普通情况下,用UNION也可以实现用一条语句进行查询。但是那样增加消耗(两个Select部分),而且SQL语句会比较长。
下面是一个是用Case函数来完成这个功能的例子
SELECT country,
       SUM( CASE WHEN sex = '1' THEN
                      population ELSE 0 END),  --男性人口
       SUM( CASE WHEN sex = '2' THEN
                      population ELSE 0 END)   --女性人口
FROM  Table_A
GROUP BY country;

这样我们使用Select,完成对二维表的输出形式,充分显示了Case函数的强大。

SUM( CASE WHEN sex = '1' THEN  population ELSE 0 END),

求合   取sex = "1" 的 population 的 SUM合  否则 取 0 结束

SUM 求和

CASE WHEN 条件就像where 之后一样的写法

THEN 取谁

(ELSE 否则取)在这里没什么用  因为 你不会说匹配不到 A列就去匹配 B列

END 结束

第二种用法

SELECT
    id,
    NAME,
    cj,
    (        判断 cj  
        CASE
        WHEN cj < 60 THEN    返回'不及格'
            '不及格'
        WHEN cj BETWEEN 60  返回'良好'
        AND 90 THEN
            '良好'
        WHEN cj > 90 THEN  返回'优秀'
            '优秀'
        END
    ) AS 状态 返回名称是状态
FROM
    stud

<select id="updateDayTotalPointAndBalance" resultType="java.util.HashMap" parameterType="java.util.HashMap" >SELECTSUM(case  when type = 1  then total end) as dailyRechargeBalanceSum,SUM(case  when type = 2  then total end) as dailyConsumptionBalanceSumfrom `transaction`wherecard_id = 1718878536AND created LIKE "2018-07-13%"
</select>
Map<String,Orders> paramMap = new HashMap<>();
paramMap = transactionDao.updateDayTotalPointAndBalance(paramMap);

JAVA学习网站

http://how2j.cn?p=73013

SQL利用Case When Then 详细用法介绍相关推荐

  1. python中3 and not 5_python中not、and和or的优先级与详细用法介绍

    前言 (小白专用)本次所分享的是Python中的not.and.or的执行时的优先级,以及他们的具体用法.本文比较详细,不喜勿喷. 一.not.and.or的含义以及优先级 对象 返回结果 优先顺序 ...

  2. python画兔子代码_【后端开发】如何用Python画一只兔子——turtle库circle()画圆函数的详细用法介绍...

    周末学习了一下turtle库的基本函数,试着画了一只大耳朵小兔子,灵感来源是jellycat邦尼兔.turtle库中circle()函数用来画弧,但和通常先确定原点,再根据半径.夹角画弧的方法有所不同 ...

  3. 用python画小兔子_如何用Python画一只兔子——turtle库circle()画圆函数的详细用法介绍...

    周末学习了一下turtle库的基本函数,试着画了一只大耳朵小兔子,灵感来源是jellycat邦尼兔.turtle库中circle()函数用来画弧,但和通常先确定原点,再根据半径.夹角画弧的方法有所不同 ...

  4. python not用法_python中not、and和or的优先级与详细用法介绍

    前言 (小白专用)本次所分享的是python中的not.and.or的执行时的优先级,以及他们的具体用法.本文比较详细,不喜勿喷. 一.not.and.or的含义以及优先级 对象 返回结果 优先顺序 ...

  5. 数据库中sum的详细用法介绍

    转自:微点阅读  https://www.weidianyuedu.com 数据库中sum的用法的用法你知道吗?下面微点阅读小编就跟你们详细介绍下数据库中sum的用法的用法,希望对你们有用. 数据库中 ...

  6. SQL:case when then else用法!

    有一些数据库表中的性别列会用字符,数字等代替男女汉字,但在进行查询时还要把男女汉字查询出口,有的同学会在后端进行验证,不过那样太麻烦了,在sql中有个很好用的语句 case when then els ...

  7. mysql 函数 case_MySQL case函数的详细用法

    case 函数 MySQL 的 case 函数的语法有种: 1.简单函数 CASE [column_name] WHEN [value1] THEN [result1]... ELSE [defaul ...

  8. SQL利用Case When Then多条件判断

    Select top 100 State,JoinState,  (case when State=1 and Joinstate=0 then 2 when State=1 and JoinStat ...

  9. Python常用内置函数enumerate()详细用法介绍

    enumerate(iterable, start=0) 返回一个枚举对象.iterable 必须是一个序列,或一个能迭代的对象.返回一个元组,里面包含一个计数值(从 start 开始,默认为 0)和 ...

  10. 如何用Python画一只兔子——turtle库circle()画圆函数的详细用法介绍

    周末学习了一下turtle库的基本函数,试着画了一只大耳朵小兔子,灵感来源是jellycat邦尼兔.turtle库中circle()函数用来画弧,但和通常先确定原点,再根据半径.夹角画弧的方法有所不同 ...

最新文章

  1. nginx检查配置文件语法是否正常,需要检查主配置文件
  2. ThinkPHP 集成 PHPUnit 8 测试框架进行单元测试
  3. Teach Yourself Drupal in 24 Minutes –Minute7 使用CCK和Image
  4. Java面向对象(7)--package和import关键字
  5. Python机器学习:线型回归法05衡量线性回归法的指标MES,RMS,MAE
  6. 安卓学习第一课——电话拨号器
  7. vue中使用base64和md5
  8. 新概念英语(1-95)Tickets,please!
  9. mybatis与data jpa
  10. 微波雷达感应模块,智能马桶传感方案,智能化生活
  11. golang隐藏window系统下自身cmd窗口
  12. 电子邮件服务的配置和使用
  13. 考研 | 组成原理【第二章】数据的表示和运算
  14. c++ opencv图像拼接
  15. Calendar自然周
  16. Oracle常见问题一千问
  17. php怎么判断qq内置浏览器,如何判断微信内置浏览器(JS PHP)
  18. 转:使用memc-nginx和srcache-nginx模块构建高效透明的缓存机制
  19. 华师2019春《计算机基础》在线作业,18秋华师《计算机基础》在线作业.doc
  20. 基于STM32三路超声波避障小车

热门文章

  1. aicloud服务器不稳定,解读华硕AiCloud应用:开创云服务新时代
  2. 上线即获千万投资,迅云强大潜力引业界瞩目
  3. 联发科山寨崛起,却成台湾手机产业掘墓人
  4. Unity 清理掉项目中垃圾文件——UnityAssetCleaner
  5. Linux驱动基础(HC-SR04超声波模块)
  6. 基于QT的汽车销售管理
  7. keras 香草编码器_使用香草JavaScript在浏览器中进行事件委托
  8. 我用了10年 从深圳流水线厂妹做到纽约高薪程序员
  9. 关于Java数组越界的一个诡异问题【leetcode204】
  10. 多小卷积核代替大卷积核——VGGNet