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 ), Col4from tblCaseWhen
5、使用第二种 case when 修改Col4列的值,范围大的条件在前面。update tblCaseWhenset Col4 = (case when Col2 > 10 then '大于10' when Col2 > 40 then '大于40' else 'else值' end)
6、查询修改后的数据,从结果可以看到,匹配到第一个条件后,后面的when就不执行了,所以,范围大的条件不能放在前面。select * from tblCaseWhen;
7、使用第二种case when,将范围大的条件移到后面,结果就如预期的显示了。update tbl觊皱筠桡CaseWhenset Col4 = (艘早祓胂case when Col2 > 40 then '大于40' when Col2 > 10 then '大于10' else 'else值' end)