您的位置:首页 > 数据库

【项目实战】---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,name
FROM 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:

SELECT
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 等级, -- 别名命名
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的理解小编的认识还不够深刻,通过简单的例子的应用不断的加深认识,希望能对大家所有帮助,有不足之处还望指出。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: