如何生成这样的行序号!

[复制链接]
查看11 | 回复9 | 2005-10-24 08:53:30 | 显示全部楼层 |阅读模式
表内容如下
列1
列2
列3
AAA
1
DFGFDDSAFDS
AAA
1
DSGFSGFGGFDSG
BBB
2
SDGSDFGFDG
CCC
3
ASFDSAFDASFDS
CCC
3
DSGDFSGFSDGFDG
DDD
4
ASFADFDSFSDF
列2是 需要添加的行序号
条件是列1中内容相同的,生成同一个序号
回复

使用道具 举报

千问 | 2005-10-24 08:53:30 | 显示全部楼层
DENSE_RANK()
回复

使用道具 举报

千问 | 2005-10-24 08:53:30 | 显示全部楼层
8I 的库
回复

使用道具 举报

千问 | 2005-10-24 08:53:30 | 显示全部楼层
817以上版可用。
回复

使用道具 举报

千问 | 2005-10-24 08:53:30 | 显示全部楼层
试了9I可以,可我要在8。1。6环境下不行。有别的法吗?
回复

使用道具 举报

千问 | 2005-10-24 08:53:30 | 显示全部楼层
没有直接的办法。
回复

使用道具 举报

千问 | 2005-10-24 08:53:30 | 显示全部楼层
永远的分析函数
回复

使用道具 举报

千问 | 2005-10-24 08:53:30 | 显示全部楼层
最初由 stanleyfzw 发布
[B]永远的分析函数 [/B]



回复

使用道具 举报

千问 | 2005-10-24 08:53:30 | 显示全部楼层
只要换一下思路, 就可以实现了:
[php]
--
SQL> select * from t;
C1 C2
---- --------------------
AAADFGFDDSAFDS
AAADSGFSGFGGFDSG
BBBSDGSDFGFDG
CCCASFDSAFDASFDS
CCCDSGDFSGFSDGFDG
DDDASFADFDSFSDF
已选择6行。
--子查询, 8I以后可用
SQL> select t1.c1, t2.rn, t1.c2
2 from t t1, (select c1, rownum rn
3
from (select distinct c1 from t order by c1)
4
) t2
5 where t1.c1=t2.c1;
C1 RN C2
---- ---------- --------------------
AAA 1 DSGFSGFGGFDSG
AAA 1 DFGFDDSAFDS
BBB 2 SDGSDFGFDG
CCC 3 DSGDFSGFSDGFDG
CCC 3 ASFDSAFDASFDS
DDD 4 ASFADFDSFSDF
已选择6行。
--分析函数, 817以后可用,
SQL>select c1 col1, dense_rank() over(order by c1) col2, c2 col3 from t;
COL1 COL2 COL3
---- ---------- --------------------
AAA 1 DFGFDDSAFDS
AAA 1 DSGFSGFGGFDSG
BBB 2 SDGSDFGFDG
CCC 3 ASFDSAFDASFDS
CCC 3 DSGDFSGFSDGFDG
DDD 4 ASFADFDSFSDF
已选择6行。
--[/php]
回复

使用道具 举报

千问 | 2005-10-24 08:53:30 | 显示全部楼层
8i里面只能自己模拟dense_rank()的效果了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行