如何根据行本身的数量字段返回多个相同的行?

use*_*715 10 oracle select repeat rownum

我正在使用oracle从购物应用中输出订单项.每个项目的数量字段可能大于1,如果是,我想将该行返回N次.

这就是我正在谈论的一张桌子

product_id, quanity
1, 3,
2, 5
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个可以返回的查询

1,3
1,3
1,3
2,5
2,5
2,5
2,5
2,5
Run Code Online (Sandbox Code Playgroud)

这可能吗?我看到了SQL Server 2005的这个答案,我正在寻找oracle中几乎所有的东西.遗憾的是,建立专用号码表不是一种选择.

Gar*_*ers 15

我在示例中使用了15作为最大值,但您应将其设置为9999或您支持的最大数量.

create table t (product_id number, quantity number);
insert into t values (1,3);
insert into t values (2,5);

select t.* 
  from t 
    join (select rownum rn from dual connect by level < 15) a 
                                 on a.rn <= t.quantity
order by 1;
Run Code Online (Sandbox Code Playgroud)