查询:如果sql server中的条件更新

时间:2015-01-13 23:52:01

标签: sql sql-server stored-procedures

我有一个SQL服务器表,其中有两列我想根据发送到存储过程的标志以及新值更新其值,如:

UPDATE
    table_Name

SET
    CASE
        WHEN @flag = '1' THEN column_A += @new_value
        WHEN @flag = '0' THEN column_B += @new_value
    END AS Total

WHERE
    ID = @ID

正确的SQL服务器代码是什么?

1 个答案:

答案 0 :(得分:0)

我认为M.Ali的评论是正确的,所以我根据他的建议构建了这个评论。 我还假设状态字段已被批准'或者'拒绝'正如你所说,基于它是否填充。如果状态字段中有任何其他条件,那么您必须在声明

的位置添加这些条件
BEGIN TRANSACTION

Update Payment
set post_date = new_postdate_value
account_num = new_account_num_value
pay_am = new_pay_am_value
pay_type = new_pay_type_value
authoriz = new_authoriz_value
where status is not null

UPDATE Payment
SET account_num = new_account_num_value
WHERE status is null

COMMIT TRANSACTION