表名:TT
数据:
Code Name FCount
1 A 2
2 B 1
3 C 3要求:根据FCount 得到相应数目的记录集,生成内部序号
结果如下:Code Name SortCode
1 A 1
1 A 2
2 B 1
3 C 1
3 C 2
3 C 3有人说可以用序列,如何使用?或者利用连接查询,SQL语句如何实现?
谢谢!
数据:
Code Name FCount
1 A 2
2 B 1
3 C 3要求:根据FCount 得到相应数目的记录集,生成内部序号
结果如下:Code Name SortCode
1 A 1
1 A 2
2 B 1
3 C 1
3 C 2
3 C 3有人说可以用序列,如何使用?或者利用连接查询,SQL语句如何实现?
谢谢!
CODE NAME FCOUNT
---------- ---------- ---------------------
1 A 2
2 B 1
3 C 3
SQL> SELECT DISTINCT code,NAME,LEVEL FROM test CONNECT BY code=code AND LEVEL<=fcount order by code,level;
CODE NAME LEVEL
---------- ---------- ----------
1 A 1
1 A 2
2 B 1
3 C 1
3 C 2
3 C 3
6 rows selected
SQL>
tmp AS(
SELECT ROWNUM rn FROM dual
CONNECT BY ROWNUM<=(SELECT MAX(fcount) FROM tt))
SELECT a.*,b.rn FROM tt a,tmp b
WHERE a.fcount>=b.rn
ORDER BY a.code,b.rn;
不过看你的要求也没想出啥好办法。
实在不成就写存储过程,用循环一条条处理,也不会很快。。
PS:我只需要用这个结果集做左联使用