2013-09-27 47 views

回答

1
CREATE TABLE test2(A NUMBER, B NUMBER); 

INSERT INTO TEST2 VALUES(1,2); 

UPDATE TEST2 SET A=B,B=0; 

执行后A = 2,B = 0

2

SQL更新本质上是原子 - 没有关于更新各个列的“序列”或“顺序”的概念。你可以以任何你喜欢的顺序放置它们,没关系。

从概念上讲,您可以考虑将该行的“之前”状态并将其更改为该行的“之后”状态。因此COL_A将更新之前更新COL_B中的任何值。

这使得很容易替换掉两个值:

UPDATE test2 SET A=B, B=A;