云服务器网:购买云服务器和VPS必上的网站!

MSSQL的CASE用法简单且实用!

CASE是MSSQL用来实现多个查询结果的函数,用它可以不用多层的嵌套if来实现复杂的逻辑判断,而且它可以在select、where、order by等关键词中使用,贮存进程中也能使用,所以CASE在数据库技术中具有重要的地位。准确说,CASE于条件触发器、分

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做多个判断,以下是一个典型的用法:

```SQL
SELECT Name, Birthdate,
CASE
WHEN YEAR(GETDATE()) - YEAR(Birthdate)
WHEN YEAR(GETDATE()) - YEAR(Birthdate)
ELSE '老年'
END AS AgeGroup
FROM 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 | 云服务器网,转载请注明出处!

关于作者: yuntue

云服务器(www.yuntue.com)是一家专门做阿里云服务器代金券、腾讯云服务器优惠券的网站,这里你可以找到阿里云服务器腾讯云服务器等国内主流云服务器优惠价格,以及海外云服务器、vps主机等优惠信息,我们会为你提供性价比最高的云服务器和域名、数据库、CDN、免费邮箱等企业常用互联网资源。

为您推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注