发布网友 发布时间: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 姓名,身高;