我在更新MSSQL中的列时遇到问题, 所以基本上我有一个像这样的数据库
no U1 U2 U3 U4
1 12 -1 10 -1
2 12 15 -1 11
3 -1 17 10 11
4 12 -1 10 11
我的目标是更新具有-1值的列。 1,它在U2和U4上有两个-1值, 我想要的是更新第一个-1值(在该示例中是从1开始的U2),具有我想要/我声明的值,我只想从1更新,而不是更新没有4 U2 ..
如何做到这一点?
答案 0 :(得分:2)
使用UPDATE语句的where子句,例如:
update table1
set U1 = case U1 when -1 then 123 else U1 end,
U2 = case when U1 != -1 and U2 = -1 then 123 else U2 end,
U3 = case when -1 not in (U1, U2) and U3 = -1 then 123 else U3 end,
U4 = case when -1 not in (U1, U2, U3) and U4 = -1 then 123 else U4 end
where [no] = (select top 1 [no] from table1 where -1 in (U1, U2, U3, U4))