sql 批量修改数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 批量修改数据相关的知识,希望对你有一定的参考价值。
表A里有Pro01~Pro48 ItemId01~ItemId48 Pro01对应ItemId01 看插图
如果Itemid01~48数据里为1的 则将对应的Pro01~48改为2
这个批量应该怎样改?
我现在只能一个一个改 太慢了
UPDATE A SET Pro01 = 2 WHERE ItemId01 = 1
或者用个小程序生成48个像UPDATE A SET Pro01 = 2 WHERE ItemId01 = 1 一样的语句,只是Pro和ItemId后面从01变到48,相信你会编。 参考技术A 把语句放Excel拼一下拖成48条语句咯 参考技术B 用存储过程,写个FOR循环 参考技术C 这是个视图把,在他的物理表里做修改
批量修改oracle数据库中的某一个字段?
我的表中有一类字段,由于内容太长了,我想做一些批处理,把记录中包含括号的内容给去掉,如何用sql实现
可以通过update方法进行批量修改。sql:update table_name SET age=25;
备注:也可以添加必要的条件,针对固定条件的数据进行批量修改。
sql:update table_name SET age=age+1 where name ='zhangsan '; 参考技术A 写个过程处理。或者写个小程序来处理吧。如果存储过程熟练就用存储过程,如果程序熟练就程序吧
先要分析数据。看是否有规律。如果有规律用字符串截取然后再拼在一起。就解决了。如果是没有规律的那就麻烦点。楼上的回答只适合于有规律的数据 参考技术B --以下是我根据你的描述,做的测试,希望对你有帮助:
-- 新建一张表kongxianji:
CREATE TABLE kongxianji(a VARCHAR2(200));
-- 插入数据,然后提交:
INSERT INTO kongxianji (a) VALUES ('12345(6)789');
INSERT INTO kongxianji (a) VALUES ('12345(67)89');
INSERT INTO kongxianji (a) VALUES ('12345(678)9');
COMMIT;
SELECT * FROM kongxianji;
-- 把a中的括号去掉,然后提交,到这一步可以查看表中数据的变化情况:
UPDATE kongxianji SET a = replace(a,substr(a,instr(a,'('),(instr(a,')')-instr(a,'(')+1)),'');
COMMIT;
SELECT * FROM kongxianji;本回答被提问者和网友采纳 参考技术C oralce 9i 10g测试通过
SQL> select * from test2;
STR1
--------------------------------------------------------------------------------
abc(asdlfjl;;asx)qpweruas;dfs
xxxx(jl;;asx)qxxppruas;dfs
update test2 t1 set t1.str1=(select substr(str1,1,instr(str1,'(' )-1)||substr(str1,instr(str1,')')+1) str2 from test2 t2 where t1.rowid=t2.rowid)
/
SQL> select * from test2;
STR1
--------------------------------------------------------------------------------
abcqpweruas;dfs
xxxxqxxppruas;dfs
以上是关于sql 批量修改数据的主要内容,如果未能解决你的问题,请参考以下文章