SQL UPDATE 将一列设置为另一个值并在同一步骤中更改值 [英] SQL UPDATE SET one Column to another value and change value in same step

查看:49
本文介绍了SQL UPDATE 将一列设置为另一个值并在同一步骤中更改值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

采用以下更新语句.

UPDATE  TABLE_1
SET     Units2 = ABS(Units1)
        ,Dollars2=ABS(Dallars1)
        ,Units1 =0
        ,Dollars1 =0
WHERE Units1 < 0
AND   Dollars2 = 0

这是我的问题,

1) 这合法吗?它进行解析并且似乎"工作(在测试表上),但它会一直工作还是我只是选择正确的记录进行审查.

1) Is this legal? It parses and it "seems" to work (on the test table), but will it always work or am I just picking the right records to review.

2) 有没有更好的方法来做到这一点.

2) is there a better way to do this.

谢谢,

推荐答案

这是合法的,只要你想保留 Units1Dollars1 的旧值code> 在 Units2Dollars2 应该工作

It is legal, and as long as you are wanting to essentially keep the old values of Units1 and Dollars1 in Units2 and Dollars2 that should work

这是一个测试:

CREATE TABLE #Table_1
(
    Units1 INT,
    Dollars1 MONEY,
    Units2 INT,
    Dollars2 MONEY
)
GO

INSERT INTO #Table_1 (Units1, Dollars1, Units2, Dollars2)
VALUES (-1,12.00,3,0.00)
GO

UPDATE  #TABLE_1
SET     Units2 = ABS(Units1)
        ,Dollars2=ABS(Dollars1)
        ,Units1 =0
        ,Dollars1 =0
WHERE Units1 < 0
AND   Dollars2 = 0
GO

SELECT * 
FROM  #Table_1

输出:

Units1 | Dollars1 | Units2| Dollars2
0      | 0.00     | 1     | 12.00

这篇关于SQL UPDATE 将一列设置为另一个值并在同一步骤中更改值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆