【项目实战】---SQLServer中case when的简单用法
2017-12-03 20:04
561 查看
前言:
对于SqlServer中case when 的应用在项目中进行了应用,现在做个简单的总结。case when 语句两种语法:
1.简单的case函数:
CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END
2.case搜索函数:
CASE WHEN FID IS NULL THEN '未开始' WHEN state > 0 THEN '进行中' ELSE '已完成' END)state FROM TABLE
所谓简单Case函数其写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。另外,注意Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。
case when在语句中位置:
1、select case when:
SELECT state.OrderNumber,(CASE
WHEN FID IS NULL THEN '未开始'
WHEN state > 0 THEN'进行中'
ELSE '已完成'
END)state
FROM table
2、where case when:
SELECT type,nameFROM t_table1 as l, t_table2 as u
WHERE (CASE WHEN l.type = '班长' AND u.ID = '1'
THEN 1
WHEN l.letterType = '班长' AND u.ID <> '1'
THEN 1
ELSE 0
END) = 1
3、group by case when:
SELECTCASE WHEN age <= 10 THEN '1'
WHEN age > 10 AND salary <=20 THEN '2'
WHEN salary > 20 AND salary <=30 THEN '3'
WHEN salary > 30 AND salary <= 40 THEN '4'
ELSE NULL END 等级, -- 别名命名
COUNT(*)
FROM t_age
GROUP BY
CASE WHEN age <= 10 THEN '1'
WHEN age > 10 AND salary <=20 THEN '2'
WHEN salary > 20 AND salary <=30 THEN '3'
WHEN salary > 30 AND salary <= 40 THEN '4'
ELSE NULL END;
总结:
对于case when的理解小编的认识还不够深刻,通过简单的例子的应用不断的加深认识,希望能对大家所有帮助,有不足之处还望指出。相关文章推荐
- SQL case when then end 简单用法
- CASE WHEN的简单用法
- case...when...简单用法sql说明
- sql中case when then简单用法
- mysql 中的case 和when的简单用法
- oracle case when简单用法 IF-THEN-ELSE
- sql语句中"case when"的简单用法示例
- SqlServer_Case_When用法
- sqlserver中查询语句case when判断的用法
- sql case when 简单用法
- Oracle case when then简单用法
- sqlserver 简单的事物用法
- Nancy简单实战之NancyMusicStore(一):准备工作和搭建项目
- oracle case when用法
- Oracle CASE WHEN 用法介绍
- SpringBoot+Maven项目实战(6):整合Log4j和Aop,实现简单的日志记录
- Oracle CASE WHEN 用法介绍
- TP里的case when用法。可以代替if判断
- Mysql中ifNull()/if()/case when用法和Oracle中nvl()/nvl2()/decode()的用法
- Oracle CASE WHEN 用法介绍