繁体   English   中英

将数据从一个表插入到另一个按列排序的表

[英]insert data from a table to another table sorted by column

有一个临时表TMP_OA_PSTN_CMP_11035其中包含以下字段:

ACTION_OBJID NUMBER,
CONTRACT_OBJID NUMBER,
STATUS varchar2(40),
UPDATE_DATE DATE

它包含700万个数据。我想创建七个不同的临时表,其中的TMP_OA_PSTN_CMP_11035数据按action_objid排序,每个表包含100万条记录。 ACTION_OBJID列不是序列。

我尝试使用rownum,但是输入了随机数据。

对于EG:

Temp1:包含从5,8 ...到1100000的action_objid的数据(因为action_objid不是序列,所以是一百万个数据)。 同样,对于其他6个临时表。 我正在使用oracle 10g。

怎么样

CREATE TABLE TEMP_TABLE_1
  SELECT *
    FROM (SELECT *
            FROM TMP_OA_PSTN_CMP_11035
            WHERE ACTION_OBJID > 0
            ORDER BY ACTION_OBJID)
    WHERE ROWNUM <= 1000000

然后,对其他每个临时表重复以上操作,将WHERE ACTION_OBJID > 0替换为(SELECT MAX(ACTION_OBJID) FROM name of previous temp table) 因此,对于TEMP_TABLE_2,该语句为

CREATE TABLE TEMP_TABLE_2
  SELECT *
    FROM (SELECT *
            FROM TMP_OA_PSTN_CMP_11035
            WHERE ACTION_OBJID > (SELECT MAX(ACTION_OBJID) FROM TEMP_TABLE_1)
            ORDER BY ACTION_OBJID)
    WHERE ROWNUM <= 1000000

分享并享受。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM