id status
-------------
1 no
2 yes
3 no
4 yes
5 --
当我将状态列更新为ID 5的“是”时
我想要这样的结果
id status
-------------
1 no
2 no
3 no
4 no
5 Yes
有可能吗?
答案 0 :(得分:2)
您可以通过CASE
语句或IIF
函数来实现。
查询将是:
UPDATE SampleTable SET [Status] = CASE WHEN Id = @InputValue THEN 'yes' ELSE 'no' END;
或
UPDATE SampleTable SET [Status] = IIF(Id = @InputValue , 'yes', 'no');
答案 1 :(得分:0)
我的建议是根据您的需要在一个事务中包含多个更新语句,对于上述示例,您将具有:
update tableName set status = 'Yes' where id = 5;
update tableName set status = 'no' where id <> 5;
在事务中同时具有两个更新查询以同时完成两个查询(成功或失败)是一个很好的选择