oracle数据库如何用update批量更新某列数据中的字段
发布网友
发布时间:2022-04-07 22:02
我来回答
共5个回答
懂视网
时间:2022-04-08 02:23
UPDATE categories
2 SET display_order = CASE id
3 WHEN ‘1‘ THEN 3
4 WHEN ‘2‘ THEN 4
5 WHEN ‘3‘ THEN 5
6 END
7 WHERE id IN (‘1‘,‘2‘,‘3‘);
或者更普遍的方式:
UPDATE test
SET first_name = CASE
WHEN card_no = 100 THEN ‘aaa‘
WHEN card_no = 110 THEN ‘bbb‘
ELSE first_name
END
如果要批量更新多条记录的多个字段,则
UPDATE categories
SET display_order = CASE id
WHEN ‘1‘ THEN 3
WHEN ‘2‘ THEN 4
WHEN ‘3‘ THEN 5
END,
title = CASE id
WHEN ‘1‘ THEN ‘New Title 1‘
WHEN ‘2‘ THEN ‘New Title 2‘
WHEN ‘3‘ THEN ‘New Title 3‘
END
WHERE id IN (‘1‘,‘2‘,‘3‘)
或
UPDATE test
SET first_name = CASE
WHEN card_no = 100 THEN ‘aaa‘
WHEN card_no = 110 THEN ‘bbb‘
ELSE first_name
END,
last_name = CASE
WHEN card_no = 100 THEN ‘xxx‘
WHEN card_no = 110 THEN ‘yyy‘
ELSE last_name
END
每个部分都罗列了两种方法,第二种方法更普遍,case后面直接是when,when里面可以包含更复杂的添加,比如大于小于等;但是第一种方法虽然case后直接指明了条件字段id,但因为有where的限制,执行起来更块一些把,其实针对第二种方法也可以加where以限制的。
另外,还看到一种使用decode的批量更新方法,不过好像decode的效率要低一些。
UPDATE test
SET first_name = DECODE(card_no,100,‘aaa‘,110,‘bbb‘)
,last_name = DECODE(card_no,100,‘xxx‘,110,‘yyy‘)
WHERE card_no IN (100,101)
参考地址:
http://www.jb51.net/article/41852.htm
https://community.oracle.com/thread/682763
oracle使用case或decode语句实现批量更新
标签:
热心网友
时间:2022-04-07 23:31
跟Sql Server类似。
可以使用编程,或者使用PL/SQL连接Oracle数据库,
登陆连接后,使用以下Sql:
update table set id='TT' where a='XX';
以上语句,就是将表table中列a='XX'的所有id列改为“TT”。
条件可以添加多个,更新的字段也可以添加多个,比如:
update table set id1='TT',id2='CC' where a='XX' and b='YY' ;
热心网友
时间:2022-04-08 00:49
update的语法格式为:
update 表名
set 字段名=“更新的值”
[WHERE 字段名 = *条件值] --这部分可以不加,如果是更新整个表。
热心网友
时间:2022-04-08 02:24
update tal set name=replace(name,'广东省','湖南省') where name like '广东省%'
热心网友
时间:2022-04-08 04:15
update tal set name = '湖南' || substr(name,3,len(name) - 2) where substr(name,1,2) = '广东'
oracle数据库如何用update批量更新某列数据中的字段
可以使用编程,或者使用PL/SQL连接Oracle数据库,登陆连接后,使用以下Sql:update table set id='TT' where a='XX';以上语句,就是将表table中列a='XX'的所有id列改为“TT”。条件可以添加多个,更新的字段也可以添加多个,比如:update table set id1='TT',id2='CC' where a='XX' and b=...
oracle数据库怎么批量修改数据?
1、使用以下代码即可同时更新一个表中几个字段的值:updateASET(C1,C2,C3,C4)=(SELECTC1,C2,C3,C4FROMBWHEREID=A.ID)Oracle数据库最新版本为OracleDatabase12c。2、update表名set(字段1,字段2,字段3,...)=(select数值1,数值2,数值3,...)where条件多个字段可以使用逗号隔开,每一个...
请教一个关于oracle数据库某个字段批量update的问题!
update 表 set 列=9+列-trunc(列,0)where 列>10;update 表 set 列=1+列-trunc(列,0)where 列<1;
怎么实现oracle数据库某个表中某一列中日期的批量修改,而不修改时间...
需要用update语句。如test表中有如下数据:要将begintime改成当前日期时间,可用如下语句:12 update test set begintime=sysdate;commit;更新后结果:
如何批量修改oracle数据库中某一个表中的某一列数据?
1、构建临时表进行主键关联更新 需求:T1表有千万级别的数据量,需要更新这个表的字段a,b满足2个条件的记录。做法:一般业务会将条件通过excel表格提供给开发,那么开发首先需要将这个excel表格的内容插入到临时表T2中,考虑到a,b都不是主键,那么需要将a,b转化成主键后再插入到T2表中,T2表中还可以...
oracle update 多个字段更新性能
在 Oracle 数据库中,当需要同时更新多个字段时,可以采用以下方法来提高性能:1.使用单条 SQL 语句更新多个字段:通过一条 SQL 语句同时更新多个字段可以减少数据库服务器和客户端之间的通信量,从而提高性能。示例语句如下:UPDATE table_name SET column1=value1,column2=value2,column3=value3 WHERE ...
oracle批量update更新的问题
存储过程。用到的知识有:游标,字符串处理函数 基本思路如下:使用游标循环a记录,读取字段1和b字段4,用字符串处理函数截取a字段1前两位与29比较,b字段4与5比较,如果符合条件进行更新。
oracle 批量替换某字段中第一位的值
UPDATE TABLE_NAME SET COL1 = '2'||SUBSTR(COL1,2,LENGTH(COL1) - 1)
在oracle中如何批量更新一列记录
什么叫批量更新一列记录? 是要一次性更新多条记录么,如果是这样的话只能逐条去些UPDATE语句。不过可以把需要更新的所有数据全部存到excel表格里,然后用CONCATENATE函数去写SQL语句
sql语句进行批量修改
4, len(h_hmedir)-3)where left(h_hmedir,3)='d:\'涉及知识:Update更改表中的现有数据SET指定要更新的列或变量名称的列表SUBSTRING返回字符、binary、text 或 image 表达式的一部分语法SUBSTRING ( expression , start , length )expression是字符串、二进制字符串、text、image、列或包含列的表达...