case when then else多个条件_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”管理工具,創(chuàng)建一張測試表:
CREATE TABLE tblCaseWhen(
Id varchar(40) NOT NULL,
Col1 varchar(50) NULL,
Col2 int NULL,
Col3 varchar(50) NULL,
Col4 varchar(50) NULL
)
2.往測試表中插入測試數(shù)據(jù):
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.查詢表中插入的測試數(shù)據(jù):
select * from tblCaseWhen;
4.使用第一種case when 查詢數(shù)據(jù)改變Col3返回的值,數(shù)據(jù)庫的值不會(huì)變。
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.查詢修改后的數(shù)據(jù),從結(jié)果可以看到,匹配到第一個(gè)條件后,后面的when就不執(zhí)行了,所以,范圍大的條件不能放在前面。
select * from tblCaseWhen;
7.使用第二種case when,將范圍大的條件移到后面,結(jié)果就如預(yù)期的顯示了。
update tblCaseWhen
set Col4 = (case
when Col2 > 40 then '大于40'
when Col2 > 10 then '大于10'
else 'else值'
end)
總結(jié)
以上是生活随笔為你收集整理的case when then else多个条件_sqlserver条件分支case when使用教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021理财通和余额宝哪个好?哪个收益高
- 下一篇: layui数据表格循环数据给特殊行变颜色