gpt4 book ai didi

SQLite - 根据列值重复行

转载 作者:行者123 更新时间:2023-12-05 02:51:33 27 4
gpt4 key购买 nike

这是数据集的样子

Key1  Start  End
A 5 8
B 2 4

我正在寻找如下所示的输出,其中创建了一个新列“Num”,它应该以相应的行值“Start”开始,递增 +1,并在“End”数字处停止。最终结果应该可以保存在一个新表中。

Key1 Num Start End
A 5 5 8
A 6 5 8
A 7 5 8
A 8 5 8
B 2 2 4
B 3 2 4
B 4 2 4

我可以在 Sqlserver 中找到一些解决方案,但在 SQLite 中找不到。

最佳答案

您可以使用递归 CTE 来实现:

with cte as (
select Key1, Start Num, Start, End
from tablename
union all
select Key1, Num + 1, Start, End
from cte
where Num < End
)
select * from cte
order by Key1, Start, End, Num

参见 demo .
结果:

| Key1 | Num | Start | End |
| ---- | --- | ----- | --- |
| A | 5 | 5 | 8 |
| A | 6 | 5 | 8 |
| A | 7 | 5 | 8 |
| A | 8 | 5 | 8 |
| B | 2 | 2 | 4 |
| B | 3 | 2 | 4 |
| B | 4 | 2 | 4 |

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

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