【项目实战】---SQLServer中case when的简单用法

来源:互联网 发布:单片机c语言讲解 编辑:程序博客网 时间:2024/09/21 06:17

前言:

对于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)stateFROM 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的理解小编的认识还不够深刻,通过简单的例子的应用不断的加深认识,希望能对大家所有帮助,有不足之处还望指出。