Ik ben er geweest.
FOR ORACLE:
Ik vond dit extreem handig een tijdje geleden op internet gezocht en genoteerd, maar ik herinner me de site nu niet meer, je kunt zoeken naar "GAP ANALYSIS"
op Google.
SELECT CASE
WHEN ids + 1 = lead_no - 1 THEN TO_CHAR (ids +1)
ELSE TO_CHAR (ids + 1) || '-' || TO_CHAR (lead_no - 1)
END
Missing_track_no
FROM (SELECT ids,
LEAD (ids, 1, NULL)
OVER (ORDER BY ids ASC)
lead_no
FROM YOURTABLE
)
WHERE lead_no != ids + 1
Hier is het resultaat:
MISSING _TRACK_NO
-----------------
6
Als er meerdere hiaten waren, zeg 2,6,7,9, dan zou het zijn:
MISSING _TRACK_NO
-----------------
2
6-7
9