我有以下用于更新表值的SQL:
Update Table
SET S_Type = 'Versus'
Where S_Type = 'REGULAR'
SET S_Type = 'Free'
Where S_Type = 'CASH';
我的SQL相当生疏,我的同事告诉我一些事情,但没有告诉我什么!
唯一想到的是我没有在集合和Where代码中引用Table.Column。
更新列是否存在任何问题?更新多个值的列时的最佳做法是什么?
干杯
答案 0 :(得分:6)
这里,我们使用case语句并找到像where子句一样的结果:
update tablename
set S_Type = (case S_Type when 'REGULAR' then 'Versus'
when 'CASH' then 'free'
else s_type
end)
答案 1 :(得分:2)
Update YourTable
set S_Type =
case S_Type
when 'REGULAR' then 'Versus'
when 'CASH' then 'free'
else s_type
end
答案 2 :(得分:0)
您使用的是SQL Server吗?如果您使用2012,您现在可以使用新的CHOOSE或IIF功能编写简化的条件更新语句,例如:
Update YourTable
set S_Type = IIF(S_Type = 'REGULAR', 'Versus', 'free')
我的两个便士值得。