Oracle 12c Fetch First N Rows Only

ORACLE 12C FETCH FIRST N ROWS ONLY

Diğer veritabanlarında olmasına rağmen oracle’da olmayan bir özellikti, artık 12C ile karşımızda.

Eski versiyonlarda ROWNUM ile ilk N kaydı getir diyebiliyorduk, 12C ile sorgumuzun sonuna FETCH FIRST N ROWS ONLY yazarak daha kolayca işimizi halledebileceğiz.

SELECT TOP 1000 * FROM [omer].[dbo].[employess] –MSSQL de bu şekilde çekilebilir.

Oracle 12C öncesi nasıl top N  yapabiliriz ona bakalım.
— En yüksek 10 maaşlı personel
SELECT * FROM (SELECT * FROM hr.employees ORDER BY salary DESC ) WHERE ROWNUM<=10;
şeklinde yapıyorduk.
Şimdi aynı sorguları 12C de yapalım.

— En yüksek 10 maaşlı personel
SELECT * FROM hr.employees ORDER BY salary DESC
FETCH FIRST 10 ROWS ONLY;

— Tablonun yüzde 20sini select etmek
SELECT * FROM hr.employees ORDER BY salary DESC
FETCH FIRST 20 PERCENT ROWS ONLY

— WITH TIES ile 10.kaydın maasıyla aynı maaslıları da getirir.
SELECT * FROM hr.employees ORDER BY salary DESC
FETCH FIRST 10 ROWS ONLY WITH TIES

Rownum ile ilgili daha detaylı bilgi

Tagged: , , , , , ,

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir