Paket ANSI / ISO untuk standardisasi LIMIT?


12

Apakah saat ini ada rencana untuk membakukan satu cara terbaik untuk membatasi jumlah hasil yang dikembalikan oleh permintaan?

Pertanyaan stack overflow di Apakah ada alternatif ANSI SQL untuk kata kunci MYSQL LIMIT? daftar berbagai cara untuk menangani perilaku ini dalam berbagai bahasa:

DB2 -- select * from table fetch first 10 rows only 
Informix -- select first 10 * from table 
Microsoft SQL Server and Access -- select top 10 * from table 
MySQL and PostgreSQL -- select * from table limit 10 
Oracle -- select * from (select * from table) where rownum <= 10

Saya tidak bermain di DB yang sering jadi saya berbicara dari ketidaktahuan di sini, tetapi sepertinya ini adalah fungsi yang cukup penting - setidaknya cukup penting sehingga saya menggaruk kepala ketika saya melihatnya diserahkan kepada vendor.

Jawaban:


20

Draf standar SQL terbaru yang dapat saya temukan di internet (tanggal 21/12/2011) berikut ini tersedia untuk digunakan dalam ekspresi kueri:

<result offset clause> ::=
    OFFSET <offset row count> { ROW | ROWS }

<fetch first clause> ::=
    FETCH { FIRST | NEXT } [ <fetch first quantity> ] { ROW | ROWS } { ONLY | WITH TIES }


Ahh, sangat keren. Saya menyukai kata kunci LIMIT kata kunci dari MySQL dan PSQL tapi saya belum menikah dengan itu dan itu akan melegakan memiliki pertanyaan saya bekerja dengan cara RDBMS lintas.
chucksmash

3
@chucksmash Kecuali di MySQL, tentu saja. Karena mereka tidak suka standar. (Ref: GROUP BY.)
Aaron Bertrand
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.