zoukankan      html  css  js  c++  java
  • SQL利用Case When Then Else End 多条件判断

    Select

    Case

        When a is not null then a

        When b is not null then b

        When c is not null then c

        When d is not null then d

        Else ''

    End 列名

    From Table Name 

    Case具有两种格式。简单Case函数和Case搜索函数。 
    --简单Case函数 
    CASE sex 
    WHEN '1' THEN '男' 
    WHEN '2' THEN '女' 
    ELSE '其他' END 
    --Case搜索函数 
    CASE WHEN sex = '1' THEN '男' 
    WHEN sex = '2' THEN '女' 
    ELSE '其他' END 

    这两种方式,可以实现相同的功能。简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。 
    还有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。
    两者中可以根据不同的需求来选择

    SELECT @rownum:=@rownum+1 rownum, 姓名,统计个数,最新创建时间
    FROM (
    SELECT @rownum:=0,
    CASE email
    WHEN 'bai@163.com' THEN '白'
    WHEN 'hei@163.com' THEN '黑'
    WHEN 'cai@163.com' THEN '采'
    WHEN 'weizhen.li@163.com' THEN '李炜臻'
    WHEN 'wangbo@163.com' THEN '王波'
    WHEN 'mao@163.com' THEN '毛'
    WHEN 'liu@163.com' THEN '刘' 
    WHEN 'cy@163.com' THEN '采' 
    ELSE '其他' END 姓名,count(*) 统计个数,MAX(createTime) 最新创建时间
    from ali_edas_app
    GROUP BY CASE email
    WHEN 'bai@163.com' THEN '白'
    WHEN 'hei@163.com' THEN '黑'
    WHEN 'cai@163.com' THEN '采'
    WHEN 'weizhen.li@163.com' THEN '李炜臻'
    WHEN 'wangbo@163.com' THEN '王波'
    WHEN 'mao@163.com' THEN '毛'
    WHEN 'liu@163.com' THEN '刘'
    WHEN 'cy@163.com' THEN '采'
    ELSE '其他' END
    ) m

  • 相关阅读:
    codeforces 1251 F. Red-White Fence
    NTT 模板
    快速傅里叶变换模板
    codeforces 1251E (贪心)
    平衡树
    lucas定理
    P3709 大爷的字符串题 (莫队)
    洛谷 P3258 [JLOI2014]松鼠的新家 (树链剖分或树上差分)
    算法-图(5)深度优先遍历图
    计算机网络-链路层(3)交换局域网
  • 原文地址:https://www.cnblogs.com/hym-pcitc/p/5613265.html
Copyright © 2011-2022 走看看