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
SQL利用Case When Then Else End 多条件判断的更多相关文章
- SQL利用Case When Then多条件判断SQL 语句
http://www.cnblogs.com/kevin2013/archive/2010/07/02/1769682.html SQL利用Case When Then多条件判断SQL ,用于sele ...
- SQL利用Case When Then多条件判断
CASE WHEN 条件1 THEN 结果1 WHEN 条件2 THEN 结果2 WHEN 条件3 THEN 结果3 WHEN 条件4 THEN 结果4 ....... ...
- (转)SQL利用Case When Then多条件判断
CASE WHEN 条件1 THEN 结果1 WHEN 条件2 THEN 结果2 WHEN 条件3 THEN 结果3 WHEN 条件4 THEN 结果4 ....... ...
- SQL利用Case When Then多条件
CASE WHEN 条件1 THEN 结果1 WHEN 条件2 THEN 结果2 WHEN 条件3 THEN 结果3 WHEN 条件4 THEN 结果4......... ...
- SQL利用CASE按分组显示合计
按行显示的合计 select game, sum(purchase) as purchase_sum from purchase group by game; 按列显示的合计 select sum(c ...
- sql关于对一个字段同时满足多条件判断来筛选查询
表所有数据 查询userName为abc或xyz的 以下为本菜鸟项目中遇到的问题: 背景: /** * wangjie 180629 * * 学生需要查询四种可能的消息 * 1.班级管理员发 ...
- 转 SQL集合函数中利用case when then 技巧
SQL集合函数中利用case when then 技巧 我们都知道SQL中适用case when then来转化数据库中的信息 比如 select (case sex when 0 then '男' ...
- SQL Server case表达式的用法
★CASE表达式是一个标量表达式,它基于条件逻辑来返回一个值.因为CASE是一个标量表达式,所以它可以应用在SELECT.WHERE.HAVING以及ORDER BY子句中. CASE表达式有两种格式 ...
- sql 语句中使用条件判断case then else end
sql 语句中使用条件判断case then else end范例: SELECT les.[nLessonNo] FROM BS_Lesson AS les WHERE les.[sClassCod ...
随机推荐
- ecshop 实现“精品、新品、热销”板块出现选项卡效果的方法
最近做一个网络商城,直接使用ecshop的免费模板,懒得重新做,ecshop建站多日了,一直想在主页的板块中建网页选项卡鼠标经过自动切换效果,百度搜索这方面的内容也没找到合适的,今天一实验,成功了,所 ...
- 基于PyQt5的Python-Gui开发
环境搭建 电脑环境 win10 64位系统 Python3.5安装 从Python官网下载python3.5安装文件,选择windows 64位版本python-3.6.5-amd64.exe.双击安 ...
- Java 操作pdf与excel
java 操作pdf组件 itextpdf <dependency> <groupId>com.itextpdf</groupId> <artifactId ...
- linux命令了的查找顺序
$PATH,从左到右依次查找. 遇到第一个匹配的命令就立即停止查找.
- React项目 - 几种CSS实践
前言团队在使用react时,不断探索,使用了很多不同的css实现方式,此篇blog总结了,react项目中常见的几种css解决方案:inline-style/radium/style-componen ...
- js去掉输入框的前后空格及一些常用正则表达式
去掉TextBox输入框两头的前后空格:onblur="this.value=this.value.replace(/^\s+|\s+$/g,'');" str为要去除空格的字符串 ...
- socket中TCP的三次握手连接和四次握手释放
三次握手连接 A: 我进来了啊 B:(有人来了安排个位子)回复:好的你进来吧 A:好的: 客户端向服务器发送一个SYN J 服务器向客户端响应一个SYN K,并对SYN J进行确认ACK J+1 客户 ...
- vue打开新窗口
1. <router-link tag="a" target="_blank" :to="{name:'detail',query:{goods ...
- 行人重识别(ReID) ——基于深度学习的行人重识别研究综述
转自:https://zhuanlan.zhihu.com/p/31921944 前言:行人重识别(Person Re-identification)也称行人再识别,本文简称为ReID,是利用计算机视 ...
- CentOS7安装MongoDB及基础操作
安装环境说明 系统环境说明 [root@master ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [root@ma ...