查询:如果 sql 服务器更新中的条件

query: if condition in sql server update

我有一个 SQL 服务器 table,其中有 2 列我想根据发送到存储过程的标志以及新值来更新它们的任何一个值,一些东西喜欢:

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 服务器代码是什么?

我认为M.Ali的评论是正确的,所以我根据他的建议构建了这个。 我还假设状态字段是 'approved' 或 'declined',如您所说,这取决于它是否已填充。如果状态字段上有任何其他条件,当然你必须将这些添加到你的 where statements

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