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.

OFFSET start { ROW | ROWS }
FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY

Ö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 
OFFSET 0 ROWS
FETCH NEXT 10 ROWS ONLY

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.