假设现在有一张表A,字段为NO,a、b,里面有2条记录(NO分别为1和2),我现在想只用一句sql实现如下的功能:
把NO为1和2的这2条记录的a字段都更新为“AA”,只更新NO为1的记录的b字段为“BB”,NO2记录的b字段不变。
请问可以吗?
------解决方案--------------------
update t set a = 'AA', b = decode(no,1,'BB',b);
------解决方案--------------------
update A set A = 'AA',b = decode(no,1,'BB',b);
commit;
------解决方案--------------------
- SQL code
SQL> create table ta (no number,a varchar(20),b varchar(20));表已创建。SQL> insert into ta values(1,'gg','mm');已创建 1 行。SQL> insert into ta values(2,'dd','mm');已创建 1 行。SQL> select * from ta; NO A B---------- -------------------- -------------------- 1 gg mm 2 dd mmSQL> update ta set a='AA',b=(decode(ta.no,1,'BB',ta.b));已更新2行。SQL> commit;提交完成。SQL> select * from ta; NO A B---------- -------------------- -------------------- 1 AA BB 2 AA mm