更新一列中的多个值

时间:2012-11-30 10:17:54

标签: sql sql-update

我有以下用于更新表值的SQL:

Update Table
SET S_Type = 'Versus'
Where S_Type = 'REGULAR'
SET S_Type = 'Free'
Where S_Type = 'CASH';

我的SQL相当生疏,我的同事告诉我一些事情,但没有告诉我什么!

唯一想到的是我没有在集合和Where代码中引用Table.Column。

更新列是否存在任何问题?更新多个值的列时的最佳做法是什么?

干杯

3 个答案:

答案 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') 

我的两个便士值得。