gpt4 book ai didi

SQL根据列号将一行拆分为多行

转载 作者:行者123 更新时间:2023-12-04 07:53:50 29 4
gpt4 key购买 nike

我有一个订单表,我会保持简单。我需要根据订单中的数量拆分行。例如,如果订单数量为 4,我需要将原始行拆分为 4 行,每行数量为 1。下面的示例数据。

ID     FKID     Product     QTY
1 100 Widget 4
我需要这样的结果。
 ID     FKID     Product     QTY
1 100 Widget 1
2 100 Widget 1
3 100 Widget 1
4 100 Widget 1

最佳答案

一种简单的方法是递归 CTE:

with cte as (
select ID, FKID, Product, QTY
from t
union all
select ID, FKID, Product, QTY - 1
from t
where qty > 1
)
select id, fkid, product, 1 as qty
from cte;
唯一需要注意的是,如果 qty可以是 100 或更大,你需要 option (maxrecursion 0) .

关于SQL根据列号将一行拆分为多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66806466/

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