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部分将会被自动忽略。
–比如说,下面这段SQL,将永远无法得到“第二类”这个结果。
CASE WHEN col_1 IN (‘a’, ‘b’) THEN ’第一类’。
WHEN col_1 IN (‘a’) THEN ’第二类’。
ELSE’其他’ END。
举个例子就明白了,例如在员工的工资表把员工的工资分成等级1000以下为低薪,1000-2000为中等,其他为高薪
select (case when salary <= 1000 then '低薪' when salary >1000 and salary <2000 then '中等' else '高薪' end ) as 工资等级 from employee
这样,工资等级就可以当做一个列来处理,包括where里面,可以写where (case when salary <= 1000 then '低薪' when salary >1000 and salary <2000 then '中等' else '高薪' end ) = ‘低薪'
当做一个列就好了
case when 0 then ‘是’when 1 then ‘否’;一般情况下在查询语句中用,根居不同的数据结果查询转换成自己想要的类型;楼主的情况,建议用存储过程,写if语法来做处理
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)