gpt4 book ai didi

sql - 基于另一列 [ORACLE] 中的数据创建编号行

转载 作者:行者123 更新时间:2023-12-04 09:56:33 26 4
gpt4 key购买 nike

我需要根据一列中的文本和另一列中的数字为多个行项目创建特定的“ID”。我基本上需要根据列中的数字复制一行 'n' 次,并且每个重复的行都有一个递增的数字作为 ID。

原始数据看起来像这样:

PN    QTY
=== ===
ABC 1
DEF 3
GHI 1

我需要一个查询来返回一个如下所示的表:
ID       PN    QTY
=== === ===
ABC;1 ABC 1
DEF;1 DEF 3
DEF;2 DEF 3
DEF;3 DEF 3
GHI;1 GHI 1

我确定我可以在运行 SQL 查询后使用脚本迭代地执行此操作,但我想避免这种情况。谢谢!

最佳答案

一种选择使用递归查询:

with cte (pn, qty, n) as (
select pn, qty, 1 from mytable where qty > 0
union all
select pn, qty, n + 1 from cte where n < qty
)
select pn, qty from cte order by pn

Demo on DB Fiddle :

PN |数量
:-- | ——:
ABC | 1
防御 | 3
防御 | 3
防御 | 3
全局健康指数 | 1

关于sql - 基于另一列 [ORACLE] 中的数据创建编号行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61904504/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com