我有这个问题,我无法完全解决。我可以得到缺失的数字区间,但我无法将它们拼凑到我的连续系列中。
因此,如果我有一个定义为 [1000,1001,1002,1003,1005,1006,1008] 的系列,我想提取三个连续系列 [1000,1001,1002,1003] 和 [1005,1006] 和 [1008] . 使用一个简单的 CTE,我得到了 1003、1005、1006 和 1008,所以我能够得到间隔的结束和开始,但现在呢?
最后我想要一个看起来像这样的表:
|to |from |
|1000 |1003 |
|1005 |1006 |
|1008 |1008 |
有人想分享一个聪明的解决方案吗?
编辑:这是(可能是多余的)CTE:
WITH MissingNumbers (FromNumber, ToNumber) AS
(
SELECT
T1.TaxLabelNumber,
T2.TaxLabelNumber
FROM TaxLabel T1
JOIN TaxLabel T2
ON T1.TaxLabelId + 1 = T2.TaxLabelId
WHERE T1.TaxLabelNumber <> T2.TaxLabelNumber - 1
)
SELECT * INTO #TempNumbers
FROM MissingNumbers
EDIT2:Ofc。计划发生了变化,所以我不再需要这种解决方案。不过还是谢谢大家的回复!非常有帮助:D