56 SQL Standart Sonuçları Limitleme
SQL:2008’in söz dizimi aşağıdaki gibidir, ne yazık ki sqlite bu söz dizimini desteklemez, ama postgres, DB2, oracle 12c+, sql server 2012+ desteklemektedir.
start { ROW | ROWS }
OFFSET FIRST | NEXT } [ count ] { ROW | ROWS } ONLY FETCH {
Örnek:
Oracle
SELECT * FROM "Customer" FETCH FIRST 10 ROWS
SQL-server
fetch seçenekleri sql server’da ORDER BY’ın argümanlarıdır. ORDER BY olmadan çalışmazlar.
SELECT * FROM Customer
order by CustomerId
0 ROWS
OFFSET NEXT 10 ROWS ONLY FETCH
Bana göre, bu sözdizimi çok hantaldır. Ayrıca, ofset kullanımı çok sorunludur. Bakınız offset’e hayır.
Ne yazık ki, veritabanlarına özgü LIMIT ve TOP anahtar kelimeleri daha kullanışlu ve daha güçlüdür. Bunları kullanın.
Bu kullanım standardların her zaman daha iyi olmadığına güzel bir örnektir.