首页 > 解决方案 > 如何在 mssql 中循环表列并创建条件插入语句

问题描述

我想在 CustomerDetails 表中循环 CustomerType 列。然后使用 CustomerType = 'CorporateCustomer' 的条件将 IsCorporateCustomer 列更新为 1,否则将其他列更新为 0

这就是我所做的,但它只执行第一条语句并将 1 添加到所有 IsCorporateCustomer 列。

我怎样才能解决这个问题?谢谢

IF EXISTS (SELECT * FROM CustomerDetails WHERE CustomerType =  'CorporateCustomer')
BEGIN
UPDATE CustomerDetails set IsCorporateCustomer = 1;
END
ELSE
BEGIN
UPDATE CustomerDetails set IsCorporateCustomer=0;
END

标签: sqlsql-serverdatabase

解决方案


您可以使用 case 语句,因此您上面的整个语句将与以下查询一样简单:

UPDATE CustomerDetails 
set IsCorporateCustomer = case when CustomerType =  'CorporateCustomer' then 1 else 0 end;

推荐阅读