读书人

请教小弟我怎么把表中所有记录用一个

发布时间: 2012-01-13 22:43:29 作者: rapoo

请问我如何把表中所有记录,用一个列的值去更改另外一个列的值
请问我如何把表中所有记录,用一个列的值去更改另外一个列的值

CREATE TABLE TEST
(
ID NUMBER,
A1 VARCHAR2(10),
A2 VARCHAR2(10),
A3 VARCHAR2(10)
)

1.我想把TEST表中所有记录,把A2的值赋给A1(A1=A2),把A3的值赋给A2(A2=A3)
请问sql语句该怎么写,只用一个sql语句

下面是我写的sql 执行错误,不知道应该怎么写
update TESTTB tb1 set(tb1.a1 = tb2.a2,tb1.a2 = tb2.a3)
from
(select tb2.a2,tb2.a3 from TESTTB tb2 where tb1.ID = tb2.ID) B,
TESTTB tb3
where
B.ID = tb3.ID

2.如果我想把所有记录的A1和A2的值互换又该怎么实现呢



[解决办法]
update test set a1=a2,a2=a3;
[解决办法]
上边的是1
2
update test set a1=a2,a2=a1;

[解决办法]
update test t1 set (a1,a2)=(select a2,a3 from test t2 where t1.id=t2.id)
update test t1 set (a1,a2)=(select a2,a1 from test t2 where t1.id=t2.id)

读书人网 >oracle

热点推荐