ANSI / ISOはLIMIT標準化を計画していますか?


12

現在、クエリによって返される結果の数を制限する最良の方法を標準化する計画はありますか?

スタックオーバーフローの質問は、MYSQL LIMITキーワードに代わるANSI SQLはありますか?は、この動作をさまざまな言語で処理するさまざまな方法を示しています。

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

私は頻繁にDBでプレイしないので、ここでは無知から話していますが、これはかなり重要な機能のようです-少なくともベンダーに任されていることがわかったときに頭を悩ませるほど重要です。

回答:


20

インターネットで見つけた最新のドラフトSQL標準(2011年12月21日)には、クエリ式で使用できる次のものが含まれています。

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

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

5
これはPostgresマニュアルの主張でもあります:postgresql.org/docs/current/static/sql-select.html#SQL-LIMIT
a_horse_with_no_name

ああ、とてもかっこいい。MySQLとPSQLのLIMITキーワードキーワードが好きでしたが、私はそれとは結婚していません。クエリをクロスRDBMSの方法で機能させると安心です。
12:46に

3
もちろん、MySQL以外は@chucksmashです。標準が嫌いだからです。(参照:GROUP BY。)
アーロンバートランド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.