Oracle 迭代列上的值

2024-02-27

所以我有一些这样的数据

NO| ID    | PID | COUNT
1 | 00033 | P4  | 1
2 | 00033 | P3  | 3
3 | 00033 | P2  | 2

我想根据计数值迭代ID和PID,就像这样

NO| ID    | PID
1 | 00033 | P4
2 | 00033 | P3
3 | 00033 | P3
4 | 00033 | P3
5 | 00033 | P2
6 | 00033 | P2

如何使用 Oracle PL/SQL 过程/游标实现此目的的最佳方法。

问候, 瑞安


使用普通 SQL:

SELECT row_number() OVER ( ORDER BY t."ID", t."PID" DESC ) as NO, 
       t."ID", t."PID"
FROM Table1 t
CROSS APPLY(
  SELECT 1 FROM dual
  CONNECT BY level <= t."COUNT"
)
ORDER BY t."ID", t."PID" DESC

demo:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Oracle 迭代列上的值 的相关文章

随机推荐