मैं वहां गया हूं।
FOR ORACLE:
मुझे यह बेहद उपयोगी लगा कुछ समय पहले नेट पर क्वेरी की थी और उसे नोट कर लिया था, हालांकि अब मुझे साइट याद नहीं है, आप "GAP ANALYSIS"
खोज सकते हैं 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
यहां, परिणाम है:
MISSING _TRACK_NO
-----------------
6
यदि कई अंतराल होते, मान लीजिए 2,6,7,9 तो यह होगा:
MISSING _TRACK_NO
-----------------
2
6-7
9