打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
sqlserver条件分支case when使用教程

在sqlserver的条件分支case when有两种写法:

1)case 字段 when 值 then 返回值 when 值2 then 返回值2 end

2)case when 条件1 then 返回值1 when 条件2 then 返回值2 end

方法步骤:

1.打开“SQL Server Management Studio”管理工具,创建一张测试表:

CREATE TABLE tblCaseWhen(

Id varchar(40) NOT NULL,

Col1 varchar(50) NULL,

Col2 int NULL,

Col3 varchar(50) NULL,

Col4 varchar(50) NULL

)

2.往测试表中插入测试数据:

insert into tblCaseWhen(Id, Col1, Col2) values('1', '第1行第2列', 10);

insert into tblCaseWhen(Id, Col1, Col2) values('2', '第2行第2列', 20);

insert into tblCaseWhen(Id, Col1, Col2) values('3', '第3行第2列', 30);

insert into tblCaseWhen(Id, Col1, Col2) values('4', '第4行第2列', 40);

insert into tblCaseWhen(Id, Col1, Col2) values('5', '第5行第2列', 50);

3.查询表中插入的测试数据:

select * from tblCaseWhen;

4.使用第一种case when 查询数据改变Col3返回的值,数据库的值不会变。

select Id, Col1, Col2,

Col3 = (case Col2 when 10 then Col2 + 10 when 20 then Col2 + 20 else Col2 + 50 end ), Col4

from tblCaseWhen

5.使用第二种 case when 修改Col4列的值,范围大的条件在前面。

update tblCaseWhen

set Col4 = (case

when Col2 > 10 then '大于10'

when Col2 > 40 then '大于40'

else 'else值'

end)

6.查询修改后的数据,从结果可以看到,匹配到第一个条件后,后面的when就不执行了,所以,范围大的条件不能放在前面。

select * from tblCaseWhen;

7.使用第二种case when,将范围大的条件移到后面,结果就如预期的显示了。

update tblCaseWhen

set Col4 = (case

when Col2 > 40 then '大于40'

when Col2 > 10 then '大于10'

else 'else值'

end)

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
空值排序(oracle和sqlserver)
SqlServer表数据导成Insert语句
c语言经典游戏代码
自动生成表记录Insert的SQL语句
SQL经典面试题及答案_吉祥工作室
sqlserver 多字段使用case..when
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服