gpt4 book ai didi

sql - 根据每行中的列值重复行

转载 作者:行者123 更新时间:2023-12-04 10:19:59 25 4
gpt4 key购买 nike

我有这个表与以下数据



Job  Quantity Status Repeat 
1    100      OK     2 
2    400      HOLD   0 
3    200      HOLD   1 
4    450      OK     3 

根据每一行的重复列中的值,应再次重复该行。例如,对于作业 1,重复值为 2,因此作业 1 应再重复两次。

结果表应如下所示


Job    Quantity Status Repeat 
1      100       OK     2 
1      100       OK     2 
1      100       OK     2 
2      400       HOLD   0 
3      200       HOLD   1 
3      200       HOLD   1 
4      450       OK     3 
4      450       OK     3 
4      450       OK     3 
4      450       OK     3 


有人可以帮我解决这个查询吗?
我正在使用 oracle 10g

最佳答案

假设您不会每行生成超过 1000 行:

with num as (select level as rnk from dual connect by level<=1000)
select Job, Quantity, Status, Repeat, rnk
from t join num on ( num.rnk <= repeat )
order by job, rnk;

这是一个测试:
http://sqlfiddle.com/#!4/4519f/12

更新:正如 Jeffrey Kemp 所说,您可以使用子查询“检测”最大值:
with num as (select level as rnk 
from dual
connect by level<=(select max(repeat) from t)
)
select job, quantity, status, repeat, rnk
from t join num on ( num.rnk <= repeat )
order by job, rnk;

关于sql - 根据每行中的列值重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11201278/

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