sqlserver条件分支case when使用教程

 时间:2026-02-12 14:25:03

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

sqlserver条件分支case when使用教程

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);

sqlserver条件分支case when使用教程

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

select * from tblCaseWhen;

sqlserver条件分支case when使用教程

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

sqlserver条件分支case when使用教程

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

update tblCaseWhen

set Col4 = (case 

                       when Col2 > 10 then '大于10' 

                       when Col2 > 40 then '大于40'

                       else 'else值'

                    end)

sqlserver条件分支case when使用教程

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

select * from tblCaseWhen;

sqlserver条件分支case when使用教程

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

update tblCaseWhen

set Col4 = (case 

                        when Col2 > 40 then '大于40'

                        when Col2 > 10 then '大于10' 

                        else 'else值'

                   end)

sqlserver条件分支case when使用教程

  • 如何让网页中的JS函数自动执行
  • 怎么用bat执行java应用程序
  • Windows系统下安装dig命令和使用方法
  • c#如何将datagridview里的单元格变成下拉菜单
  • mysql workbench如何disable safe mode
  • 热门搜索
    电脑自动关机怎么设置 火箭怎么画 wifi万能钥匙怎么用 手机膜怎么撕下来 花呗怎么借钱出来 皮蛋怎么做好吃 鼻塞怎么办 华硕电脑怎么样 疙瘩汤怎么做 鸡翅根怎么做好吃