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

  • 相关阅读:
    点击新闻弹出新闻内容,并且新闻内容根据鼠标移动
    阻止用户复制页面上的文字的几种方法
    js简易聊天框- 鼠标和回车键发送消息
    Java——package和import关键字
    Java——static关键字
    Java——单例模式初步
    Java——this关键字
    Java面向对象的特征一:封装性
    Java再谈方法
    Java——对象
  • 原文地址:https://www.cnblogs.com/hym-pcitc/p/5613265.html
Copyright © 2011-2022 走看看