我有一张桌子(订阅)
OrderId | Plan value
1 | A
2 | B
3 | C
4 | A
... | ...
我有我的左联接表(计划值)
Plan Value ID | Value
A | 2
B | 4
C | 1
我的输出表必须是:
OrderId | Plan value
1 | A
1 | A
2 | B
2 | B
2 | B
2 | B
3 | C
4 | A
4 | A
我想根据“值”结果中的左联接号来复制X倍的OrderID行。
谢谢!
答案 0 :(得分:0)
您需要数字表或递归CTE。假设一个表有足够的行,您可以即时生成一个数字表:
select s.order_id, s.plan_value
from subscriptions s join
plans p
on s.plan_value = p.plan_value_id join
(select row_number() over () as seqnum
from subscriptions
limit 100 -- or the maximum
) n
on n.seqnum <= p.value;