用于LIMIT标准化的ANSI / ISO计划?


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

我通常不会在数据库中玩游戏,因此我在这里从无知开始讲话,但这似乎是一个非常重要的功能-至少足够重要,当我看到它留给供应商时,我会挠头。

Answers:


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 }


啊,非常酷。我喜欢来自MySQL和PSQL的LIMIT关键字关键字,但我对此并不满意,让我的查询以跨RDBMS的方式工作将是一件轻松的事。
chucksmash

3
@chucksmash当然,除了MySQL。因为他们不喜欢标准。(Ref:GROUP BY。)
亚伦·伯特兰
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.