J'ai ce problème que je ne peux pas résoudre tout à fait. Je peux obtenir l'intervalle des nombres manquants, mais je ne peux pas les reconstituer à partir de ma série continue. Donc, si j'ai une série définie comme [1000,1001,1002,1003,1005,1006,1008], je veux extraire les trois séries continues [1000, 1001, 1002, 1003] et [1005, 1006] et [1008]. En utilisant un simple CTE, j'ai obtenu 1003, 1005, 1006 et 1008, donc je peux obtenir la fin et le début des intervalles, mais maintenant?Générer tous les intervalles continus d'une série
En fin de compte, je veux une table qui ressemble à ceci:
|to |from |
|1000 |1003 |
|1005 |1006 |
|1008 |1008 |
Quelqu'un at-il une solution intelligente qu'ils veulent partager?
EDIT: Voici le (probablement reduntant) 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. il y avait un changement de plans, donc je n'ai plus besoin de ce genre de solution. Merci pour toutes les réponses si! Très utile: D