在ORACLE 8i中,如何将一个表中的记录进行排序,并对相同数据项进行编号,且数据量较大。
如表
转换前 转换后
SOUID ITEM SEQID SOUID ITEM SEQID
12 AAA 12 AAA 1
22 BBB 45 AAA 2
32 CCC 70 AAA 3
45 AAA 22 BBB 1
52 BBB 52 BBB 2
61 CCC 32 CCC 1
70 AAA 61 CCC 2
请高手帮忙!
如表
转换前 转换后
SOUID ITEM SEQID SOUID ITEM SEQID
12 AAA 12 AAA 1
22 BBB 45 AAA 2
32 CCC 70 AAA 3
45 AAA 22 BBB 1
52 BBB 52 BBB 2
61 CCC 32 CCC 1
70 AAA 61 CCC 2
请高手帮忙!
from tbname;
---------- ------------------------------
1 aaa
2 aaa
3 aaa
4 bba
5 bbb
6 bbb
7 bbb
8 bbb
9 bbb
10 bbb已选择10行。已用时间: 00: 00: 00.47
13:23:28 SQL> select ttt.col1,ttt.col2,ttt.rn-tttt.mrn+1 r
13:23:32 2 from (select col1,col2,rownum rn from (
13:23:32 3 select * from tb order by col2) t) ttt,
13:23:32 4 (select col2,min(rn) mrn from (
13:23:32 5 select col1,col2,rownum rn from (
13:23:32 6 select * from tb order by col2) t
13:23:32 7 ) tt group by col2) tttt
13:23:33 8 where ttt.col2=tttt.col2(+);COL1 COL2 R
---------- ------------------------------ ----------
1 aaa 1
2 aaa 2
3 aaa 3
4 bba 1
5 bbb 1
6 bbb 2
7 bbb 3
8 bbb 4
9 bbb 5
10 bbb 6已选择10行。已用时间: 00: 00: 00.47
13:23:33 SQL>
CREATE GLOBAL TEMPORARY TABLE TABLENAME (
COL1 number,
COL2 varchar2(20),
col3 number
) ON COMMIT DELETE ROWS ;然后
insert into TABLENAME
select ttt.col1,...
完成了。