私はそこに行ったことがあります。
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