gpt4 book ai didi

sql-server - 如何仅在 tsql 中从计数中扩展行

转载 作者:行者123 更新时间:2023-12-04 01:50:11 25 4
gpt4 key购买 nike

我有一个包含数字和范围值的表格。例如,一列的值为 40,另一列的值为 100,这意味着从 40 开始,该范围有 100 个以 139 结尾的值,包括数字 40。我想编写一个 tsql 语句,将我的数据扩展为单个行。

我想我需要一个 cte,但不知道如何实现。

注意:展开后我预计有 700 万行。

最佳答案

如果你想要 CTE,这里有一个例子:

初始插入:

insert into rangeTable (StartValue, RangeValue)
select 40,100
union all select 150,10
go

查询:

with r_CTE (startVal, rangeVal, generatedVal)
as
(
select r.startValue, r.rangeValue, r.startValue
from rangeTable r
union all
select r.startValue, r.rangeValue, generatedVal+1
from rangeTable r
inner join r_CTE rc
on r.startValue = rc.startVal
and r.rangeValue = rc.rangeVal
and r.startValue + r.rangeValue > rc.generatedVal + 1
)
select * from r_CTE
order by startVal, rangeVal, generatedVal

请注意,默认的最大递归次数为 100。您可以通过调用将其更改为最大值 32767

option (maxrecursion 32767)

或者没有限制

option (maxrecursion 0)

参见 BOL详情

关于sql-server - 如何仅在 tsql 中从计数中扩展行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/464642/

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