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

  • 相关阅读:
    Java修饰符
    java中接口的定义
    抽象类
    final关键字的特点
    hdu6489 2018 黑龙江省大学生程序设计竞赛j题
    POJ 3268 (dijkstra变形)
    poj 2253 floyd最短路
    poj1681 Network
    bzoj1202 狡猾的商人
    Nastya Is Buying Lunch
  • 原文地址:https://www.cnblogs.com/hym-pcitc/p/5613265.html
Copyright © 2011-2022 走看看