谢谢ORARichard(没钱的日子......)的提醒。 update tblA set Age = DECODE(NAME,'AA','20', 'BB','30', 'CC','40', '') 最后一个空格表示与前面不匹配的话用 DEFAULT
赞同ORARichard and onejune4450
update tblA set Age = DECODE(NAME,'AA','20', 'BB','30', 'CC','40', '')
update tblA set Age = DECODE(NAME,'AA','20', 'BB','30', 'CC','40', Age)
update tblA set Age = DECODE(NAME,'AA','20', 'BB','30', 'CC','40', Age)to libin_ftsafe(子陌红尘) 你这句话的确没错了,不过如果表中有百万条数据,那岂不是要更新百万条了,最好的方法还是一楼的to wangybyangxr(王永斌) 你写的第二句还是有问题,你参照libin_ftsafe(子陌红尘)的句子再想想
谢谢ORARichard(没钱的日子......)的提醒。
其实为了适应开发的要求 最好把它放到一个存储过程中这样可以避免很多问题 如 create or replace procedure updatetblA(v_Age1 in varchar2,v_Age2 in varchar2,v_Age3 in varchar2) begin update tblA set Age=v_Age1 where Name='AA'; update tblA set Age=v_Age2 where Name='BB'; update tblA set Age=v_Age3 where Name='CC'; /*如果要求必须都执行的话加上 commit*/ end;
wangybyangxr(王永斌)的句子少个条件,会造成将NAME非'AA','BB','CC'的AGE更新为NULL
你这句话的确没错了,不过如果表中有百万条数据,那岂不是要更新百万条了,最好的方法还是一楼的to wangybyangxr(王永斌)
你写的第二句还是有问题,你参照libin_ftsafe(子陌红尘)的句子再想想
如 create or replace procedure updatetblA(v_Age1 in varchar2,v_Age2 in varchar2,v_Age3 in varchar2)
begin
update tblA set Age=v_Age1 where Name='AA';
update tblA set Age=v_Age2 where Name='BB';
update tblA set Age=v_Age3 where Name='CC';
/*如果要求必须都执行的话加上
commit*/
end;