Ağustos 05, 2010

Oracle Rownum - Belirli satır aralığını çekmek

Oracle'da rownum ile sorgularımızı sınırlandırabiliyoruz.
"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 5 
dediğ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 10
dediğimizde bize sıfır satır dönecektir. Aynı şekilde
select * from personel where rownum>5 and rownum<=10
dediğimizde de satır döndermeyecektir. Personel tablosundaki 5 ile 10 arasındaki satırları sonuç olarak alabilmek için yazmamız gereken sorgu;


select * from (select  x.*, rownum as r from ( select *  from personel  order by adi ) x)  where r between 5 and 10;
ş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.

Hiç yorum yok:

Yorum Gönder

System.Text.Json.JsonException hatası - cycle or if the object depth is larger than the maximum allowed depth of 32.

 Eğer .net'te aşağıdaki hatayı alıyorsanız; " A possible object cycle was detected which is not supported. This can either be due t...