oracle数据库 批量将原有数据表中数据插入新表

发布网友 发布时间:2022-04-22 23:29

我来回答

6个回答

懂视网 时间:2022-04-09 22:48

数据库中原有表CCC,字段如图

技术分享

create table CCCAAABBB as select *from CCC where 1=2

技术分享

上面用1=2代表只是复制原有表的表结构

 

若:

技术分享

 

 就是除了表的名字不同,table结构与字段均相同

 

oracle中利用旧表生成新表

标签:rac   字段   tab   table   数据库   bsp   http   不同   技术   

热心网友 时间:2022-04-09 19:56

可以通过insert into …… as select 语句来进行实现。
sql:insert into tablename2( id,name) as select id ,name from tablename2 where 条件语句。
备注:以上语句中插入的字段顺序必须要和查询的语句的顺序保持一致,否则会报错,如果有条件语句的话,可以增加 where条件。

热心网友 时间:2022-04-09 21:14

create table 新表(相应字段) as
select distinct name,max(formate(日期,"YYYY")),max(身高) from 旧表

其中日期格式你自己查看下忘记怎么格式化了意思就是这样,这样只取更新日期最近的,至于身高会不会是最大感觉楼主例子还是有问题没描述清楚,身高一定会增高?和更新日期增加而增加?

热心网友 时间:2022-04-09 22:48

create table newtable as select * from oldtable
where rowid=(select rowid from oldtable where (姓名,更新日期) in (select 姓名,max(更新日期) from oldtable group by 姓名));

此语句适用于 ‘身高’ 字段后面还有更多字段

热心网友 时间:2022-04-10 00:40

insert into 新表(姓名,更新日期,身高)
select 姓名,更新日期,身高
from 原表
where ((姓名=’张三‘ and 更新日期=’99年‘) or (姓名=’李四‘ and 更新日期=’88年‘))追问问题是我姓名字段有很多条记录,有一种高效的循环访问机制吗?

追答你具体是想根据姓名怎么取数据,如果只是简单的去重复,可以select distinct(姓名),更新日期,身高
from 原表

热心网友 时间:2022-04-10 02:48

create table new_tablename
as
select 姓名,max(更新日期) 更新日期,身高 from old_table group by 姓名,身高;

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com