CASE是MSSQL用来实现多个查询结果的函数,用它可以不用多层的嵌套if来实现复杂的逻辑判断,而且它可以在select、where、order by等关键词中使用,贮存进程中也能使用,所以CASE在数据库技术中具有重要的地位。准确说,CASE于条件触发器、分组函数所做的工作是类似的,它都用于实现多个查询结果。
在MSSQL中,CASE有三种情势,它们的用法简单又实用:简单的CASE 、搜索的CASE和表达式CASE。
简单的CASE是简单用于替换其他结果的CASE,以下是一个典型的用法:
“`SQL
SELECT Name, Gender,
CASE Gender
WHEN ‘F’ THEN ‘男’
WHEN ‘M’ THEN ‘女’
ELSE ‘未知’
END AS GenderDes
FROM T_Person
上例中,我们会从T_Person当选取Name和Gender,并且通过CASE将性别由代号替换为相应的描写,以到达更容易读的定义。
搜索的CASE,可使用多个conditon做多个判断,以下是一个典型的用法:
```SQLSELECT Name, Birthdate,
CASE WHEN YEAR(GETDATE()) - YEAR(Birthdate)
WHEN YEAR(GETDATE()) - YEAR(Birthdate) ELSE '老年'
END AS AgeGroupFROM T_Person
上例中,根据此处的诞生日期,我们可以判断用户的年龄阶段,同时也能够取得用户匹配的年龄描写。
表达式CASE,可让我们利用CASE来实现复杂的表达式,以下是一个典型的用法:
“`sql
SELECT Name, Grade,
CASE
WHEN Grade = 100 THEN ‘优’
WHEN Grade > 80 THEN ‘良’
ELSE ‘差’
END AS GradeDes
FROM T_Person
上例中,我们完成了对成绩的判断,根据出 的成绩,为学生打上相应的等级。
总的来讲,MSSQL的CASE用法简单且实用,它的灵活性将大大地提升我们的数据查询能力。
本文来源:https://www.yuntue.com/post/105304.html | 云服务器网,转载请注明出处!

微信扫一扫打赏
支付宝扫一扫打赏