查询:如果 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
我有一个 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