sql - 如何在 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
解决方案
您可以使用 case 语句,因此您上面的整个语句将与以下查询一样简单:
UPDATE CustomerDetails
set IsCorporateCustomer = case when CustomerType = 'CorporateCustomer' then 1 else 0 end;
推荐阅读
- flutter - 颤振构建错误方法'inheritFromWidgetOfExactType'
- ruby-on-rails - 如何在 kubernetes cron 作业中启动 rails rake 任务
- javascript - 赛普拉斯和谷歌地图拖动移动元素,而不是地图
- javascript - Nipplejs方向事件触发间隔
- sql-server - SQL Server 何时提供行级安全性?
- python-3.x - 两列两个二维数组创建数据框?
- namespaces - unshare 命令不会创建新的 PID 命名空间
- java - 操作栏中的动态标题
- python - 如何在搅拌机大纲搜索栏中解析文本
- ruby-on-rails - Ruby on Rails 问题如何阻止 Total time duration 每天出现多次