前言:
而今姐妹们对“case when 多个值”大概比较重视,朋友们都需要学习一些“case when 多个值”的相关内容。那么小编同时在网摘上搜集了一些关于“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)
标签: #case when 多个值