sıralı gitmesi gereken verilerdeki eksik id’leri bulmak

database de bir kolonuzun sıralı gitmesi gerekiyor. 1 2 3 4 5 6 7 8 9 gibi sıra sıra olması gereken bir kolonunuz var ama nerden insert yapıyorsanız bu kolona ordan bi şekilde sırayı bozup veri gönderiyorsunuz ve bunu çözme şansınız yok. şimdi ne yapabilirsiniz 🙂

tabiiki arkadaşınıza şunu sorarsınız. olm bu veriler sıralı olmalı ama arada boşluklar var ve öyle bi kayıt tabloda olmadığı için nasıl select ederim bilemiyorum.

bende bunu epey aradım düşündümde bulamadım 🙂 yani olmayan kayıdı nasıl bulabilirsinki bütün database de arama mantığı olan veriler üstünedir 🙂 neyse hemen örnek geliyor


select l.id + 1 as start
from tablo as l
  left outer join tablo as r on l.id + 1 = r.id
where r.id is null;

kendinden kendine left outer joinli selectimizde id nin null olduğu yerleri ver ve id her zaman id+1 e eşit olsun diye bir tarama yapan bu mükemmel select sonuç olarak tabloda eksik olan id leri tıkıt tıkır sıralıyor.