"Select * from personel where rownum<=20" diyerek personel tablosunun ilk 20 satırını çekiyoruz.
Peki belirli bir aralıktaki satır sayısını elde etmek istersek ne yapmalıyız?
Burada rownum mantığına göre
select * from personel where rownum between 1 and 5dediğimizde 1 ile 5. satırları getirmekte.Yani rownum<=5 ile aynı sonucu döndürmekte.Ancak
select * from personel where rownum between 5 and 10dediğimizde bize sıfır satır dönecektir. Aynı şekilde
select * from personel where rownum>5 and rownum<=10dediğimizde de satır döndermeyecektir. Personel tablosundaki 5 ile 10 arasındaki satırları sonuç olarak alabilmek için yazmamız gereken sorgu;
şeklinde olmalıdır. Bu sorgu personel tablosunda personel adına göre sıralama yapıp,bu sıralamada 5 ile 10. kayıt arasındaki satırları bize döndürür.
select * from (select x.*, rownum as r from ( select * from personel order by adi ) x) where r between 5 and 10;
Hiç yorum yok:
Yorum Gönder