SQL ET POSTGRE 5.36 Ofetch First

Dans cette leçon nous découvrons la clause FETCH FIRST en SQL et PostgreSQL. Elle sert à limiter le nombre de lignes retournées par une requête SELECT. Quand une table contient plusieurs centaines ou milliers de lignes, on n'a pas toujours besoin de toutes les voir : afficher uniquement les premières suffit. FETCH FIRST répond exactement à ce besoin.

La syntaxe complète est FETCH FIRST n ROWS ONLY, où n représente le nombre de lignes que l'on souhaite récupérer. Elle se place toujours à la fin de la requête, après la clause ORDER BY si celle-ci est présente. FETCH FIRST est définie dans la norme SQL standard, ce qui la rend portable d'un SGBD à l'autre, contrairement à LIMIT qui est plus spécifique à PostgreSQL et MySQL.

Exemple d'utilisation

SELECT titre, date_sortie FROM film
ORDER BY date_sortie DESC
FETCH FIRST 5 ROWS ONLY;

Cette requête retourne les cinq films les plus récents de la table. L'ordre est important : sans ORDER BY, FETCH FIRST renvoie simplement les n premières lignes telles qu'elles sont stockées en base, sans garantie de tri. Combiner FETCH FIRST avec un tri donne tout son sens à la limitation.

  • FETCH FIRST n ROWS ONLY : limite la sortie à n lignes.
  • Se place après ORDER BY pour garantir un tri cohérent.
  • Équivalent normalisé de LIMIT (norme SQL standard).

FETCH FIRST est utile pour la pagination, pour afficher un top N (top 10 des ventes, dernières inscriptions, etc.) ou pour tester rapidement une requête lourde sans inonder l'interface de résultats. Avec ORDER BY, elle devient un outil essentiel pour présenter des données ordonnées de manière concise.