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

  • 相关阅读:
    软件工程概论-用户登录界面
    2016.11.25异常处理
    2016.11.18多态
    2016.11.11继承与接口
    11.6数组
    10.28字符串加密等
    python 读写文件
    python可变的类型、不可变的类型
    python 字典练习 记录学生是否交作业的小程序
    python字典
  • 原文地址:https://www.cnblogs.com/hym-pcitc/p/5613265.html
Copyright © 2011-2022 走看看