微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果条件在sql server更新查询

我有一个sql服务器表,其中有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服务器代码呢?

解决方法

目前的答案是正确的,应该可以正常工作,但是更简单,更明显,更可维护的是什么问题:
IF @flag = 1
    UPDATE table_name SET column_A = column_A + @new_value WHERE ID = @ID;
ELSE
    UPDATE table_name SET column_B = column_B + @new_value WHERE ID = @ID;

这很容易阅读,虽然这是一个非常简单的查询.

这是一个工作示例,由@snyder提供:SqlFiddle.

原文地址:https://www.jb51.cc/mssql/81554.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐