Passer au contenu principal
La clause LIMIT détermine le nombre de lignes renvoyées par votre requête.

Syntaxe de base

Sélectionner les premières lignes :
LIMIT m
Renvoie les m premières lignes du résultat, ou tous les enregistrements s’il y en a moins de m. Syntaxe alternative de TOP (compatible MS SQL Server) :
-- SELECT TOP number|percent column_name(s) FROM table_name
SELECT TOP 10 * FROM numbers(100);
SELECT TOP 0.1 * FROM numbers(100);
Cela est équivalent à LIMIT m et peut être utilisé pour assurer la compatibilité avec les requêtes de Microsoft SQL Server. Sélection avec OFFSET :
LIMIT m OFFSET n
-- or equivalently:
LIMIT n, m
Saute les n premières lignes, puis renvoie les m lignes suivantes. Dans les deux cas, n et m doivent être des entiers non négatifs.

Limites négatives

Sélectionnez des lignes depuis la fin de l’ensemble de résultats à l’aide de valeurs négatives :
SyntaxeRésultat
LIMIT -mm dernières lignes
LIMIT -m OFFSET -nm dernières lignes après avoir ignoré les n dernières lignes
LIMIT m OFFSET -nm premières lignes après avoir ignoré les n dernières lignes
LIMIT -m OFFSET nm dernières lignes après avoir ignoré les n premières lignes
La syntaxe LIMIT -n, -m est équivalente à LIMIT -m OFFSET -n.

Limites fractionnaires

Utilisez des valeurs décimales comprises entre 0 et 1 pour sélectionner un pourcentage de lignes :
SyntaxeRésultat
LIMIT 0.1Les 10 % premières lignes
LIMIT 1 OFFSET 0.5La ligne médiane
LIMIT 0.25 OFFSET 0.5Troisième quartile (25 % des lignes après avoir ignoré les 50 % premières lignes)
  • Les fractions doivent être des valeurs Float64 supérieures à 0 et inférieures à 1.
  • Les nombres de lignes fractionnaires sont arrondis à l’entier supérieur.

Combiner différents types de LIMIT

Vous pouvez combiner des entiers standard avec des OFFSET fractionnaires ou négatifs :
LIMIT 10 OFFSET 0.5    -- 10 rows starting from the halfway point
LIMIT 10 OFFSET -20    -- 10 rows after skipping the last 20

LIMIT … WITH TIES

Le modificateur WITH TIES inclut des lignes supplémentaires ayant les mêmes valeurs ORDER BY que la dernière ligne incluse dans la limite.
SELECT * FROM (
    SELECT number % 50 AS n FROM numbers(100)
) ORDER BY n LIMIT 0, 5
┌─n─┐
│ 0 │
│ 0 │
│ 1 │
│ 1 │
│ 2 │
└───┘
Avec WITH TIES, toutes les lignes ayant la même valeur que la dernière sont incluses :
SELECT * FROM (
    SELECT number % 50 AS n FROM numbers(100)
) ORDER BY n LIMIT 0, 5 WITH TIES
┌─n─┐
│ 0 │
│ 0 │
│ 1 │
│ 1 │
│ 2 │
│ 2 │
└───┘
La ligne 6 est incluse, car elle a la même valeur (2) que la ligne 5. Le même principe s’applique lorsque le OFFSET est indiqué avec le mot-clé OFFSET :
SELECT * FROM (
    SELECT number % 50 AS n FROM numbers(100)
) ORDER BY n LIMIT 3 OFFSET 2 WITH TIES
┌─n─┐
│ 1 │
│ 1 │
│ 2 │
│ 2 │
└───┘
Si l’on ignore les 2 premières lignes et que l’on en prend 3, le résultat serait normalement 1, 1, 2, mais le deuxième 2 est inclus car il est ex æquo avec la dernière ligne.
WITH TIES n’est pas pris en charge avec des valeurs négatives de LIMIT.
Ce modificateur peut être combiné avec le modificateur ORDER BY ... WITH FILL.

Considérations

Résultats non déterministes : Sans clause ORDER BY, les lignes renvoyées peuvent être choisies de manière arbitraire et varier d’une exécution de requête à l’autre. Limite côté serveur : Le nombre de lignes renvoyées peut également être affecté par le paramètre limit.

Voir aussi

  • LIMIT BY — Limite le nombre de lignes par groupe de valeurs, utile pour obtenir les résultats top N dans chaque catégorie.
Dernière modification le 25 juin 2026