Maison >base de données >tutoriel mysql >Comment puis-je ajouter des numéros de ligne aux résultats de ma requête PostgreSQL ?

Comment puis-je ajouter des numéros de ligne aux résultats de ma requête PostgreSQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-15 15:59:10602parcourir

How Can I Add Row Numbers to My PostgreSQL Query Results?

Ajout de numéros de ligne aux résultats de requête PostgreSQL

L'affichage des numéros de ligne peut fournir un contexte précieux aux résultats de votre requête PostgreSQL. PostgreSQL a introduit la fonction de fenêtre ROW_NUMBER() dans la version 8.4, qui vous permet d'ajouter des numéros de ligne à vos requêtes.

Syntaxe :

La syntaxe de ROW_NUMBER() est comme suit :

ROW_NUMBER() OVER (PARTITION BY partition_expression ORDER BY sort_expression)
  • partition_expression : Facultatif. Regroupe les lignes avant la numérotation.
  • sort_expression : facultatif. Détermine l'ordre dans lequel les numéros de ligne sont attribués.

Exemple :

Pour attribuer des numéros de ligne sans tri ni regroupement, utilisez :

SELECT ROW_NUMBER() OVER () AS rownum, *
FROM foo_tbl;

Tri et regroupement :

Pour trier et regrouper les lignes avant en attribuant des numéros de ligne, spécifiez respectivement les clauses ORDER BY et PARTITION BY :

SELECT ROW_NUMBER() OVER (ORDER BY last_name) AS rownum, *
FROM employee_tbl;

Cette requête attribuera des numéros de ligne en fonction des valeurs de la colonne last_name, avec des liens résolus par l'ordre de tri par défaut de la table .

Simplification de la requête :

Si le tri ou le regroupement n'est pas requis, vous pouvez simplifier la requête. requête comme suit :

SELECT ROW_NUMBER() OVER () AS rownum, *  -- no fields in the ORDER BY clause
FROM foo_tbl;

Exemple SQL Fiddle :

Un exemple fonctionnel peut être trouvé sur [SQL Fiddle](https://sqlfiddle.com/# !18/6e750c/1).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn