【发布时间】:2009-09-14 08:55:58
【问题描述】:
我有这个问题,我无法完全解决。我可以得到缺失的数字区间,但我无法将它们拼凑到我的连续系列中。
因此,如果我有一个定义为 [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
【问题讨论】: