Tablodaki İlk Kaydı Getirmek (Oracle, Sql)
Diyelim ki Oracle da sql sorgusu ile bir tablodaki ilk kaydı getirmek istediniz ve “rownum=1 olanı çeksem olur ” diye düşündünüz ve şu kodu yazdınız.
select name, price from items rownum =1
Bu kod çalışmayacaktır. Kodun doğrusu ise şöyle olmalıdır.
select name, price from ( select rownum r, name, price from items ) where r =1;
Kolay gelsin. “Bazen küçük bilgiler, büyük işlerinizde, büyük işe yarar.”
SELECT TOP 1 alan1, alan2… alanN
FROM tablo
WHERE ….
ORDER BY alan_veya_fonksiyon DESC;
bu şekildede ilk kadı bulmamız mümkün/ Bu gün bundan sağlıklı sonuç alamasamda…Daha önce kullandığım önemseyeceğim sorgu…..
rownum için ” >(büyük) ” ve ” = (eşit)” ifadeleri kullanılamaz çünkü rownum sonuçlar fetch edilirken oluşur. dolayısıyla “büyük” ifadesi ilk satırda yalan olacağı için devamı gelmez.
verdiğiniz örnekte istenen ilk satır olduğu için
“where rownum < 2" kullanılabilir. rownum kullanımının subselect gerektirdiği yer diğer veritabanlarındaki gibi LIMIT, FIRST x SKIP, ve TOP kullanımlarına denk gelmesi gerektiği yerlerdir.
Örnek :
select name, price from
2 (
3 select rownum r, name, price
4 from items
5 )
6 where r Between 3 and 5;
Yazı için teşekkürler. rownum değinilmesi gereken bir konu fakat bu özellikleri de anlatılmalı. Tekrar teşekkürler.
şu gün itibari ile işime yaradı hocaM