Plans ANSI / ISO pour la normalisation LIMIT?


12

Existe-t-il actuellement des plans pour normaliser une meilleure façon de limiter le nombre de résultats renvoyés par une requête?

La question de dépassement de pile à Existe-t-il une alternative ANSI SQL au mot clé MYSQL LIMIT? répertorie les différentes manières de gérer ce comportement dans différentes langues:

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

Je ne joue pas souvent dans les bases de données, donc je parle d'ignorance ici, mais il semble que ce soit une fonctionnalité assez importante - au moins assez importante pour que je me gratte la tête quand je vois qu'elle a été laissée aux vendeurs.

Réponses:


20

Le dernier projet de norme SQL que j'ai pu trouver sur Internet (daté du 21/12/2011) peut être utilisé dans une expression de requête:

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

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

5
C'est aussi ce que prétend le manuel Postgres: postgresql.org/docs/current/static/sql-select.html#SQL-LIMIT
a_horse_with_no_name

Ahh, très cool. J'ai aimé le mot-clé LIMIT de MySQL et PSQL mais je ne suis pas marié avec et ce sera un soulagement de voir mes requêtes fonctionner de manière croisée SGBDR.
chucksmash

3
@chucksmash Sauf sur MySQL, bien sûr. Parce qu'ils n'aiment pas les normes. (Réf: GROUPE PAR.)
Aaron Bertrand
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.