Maison > base de données > tutoriel mysql > Comment trier les résultats d'une requête PostgreSQL en fonction de l'ordre des valeurs dans une liste IN ?

Comment trier les résultats d'une requête PostgreSQL en fonction de l'ordre des valeurs dans une liste IN ?

Barbara Streisand
Libérer: 2025-01-19 11:06:11
original
745 Les gens l'ont consulté

How to Order PostgreSQL Query Results Based on the Order of Values in an IN List?

Trier les résultats des requêtes PostgreSQL en fonction de l'ordre des valeurs dans la liste IN

Dans PostgreSQL, la structure IN dans la clause WHERE vous permet de spécifier un ensemble de valeurs qui correspondent à une colonne. Cependant, trier les lignes de résultats en fonction de l'ordre des valeurs dans la liste IN peut être un défi.

Heureusement, PostgreSQL 8.2 introduit la structure VALUES(), qui vous permet de créer une table virtuelle contenant des valeurs et un ordre spécifiques. Cela nous permet de trier les résultats en fonction de l'ordre des valeurs dans la liste IN.

Pour y parvenir, utilisez la syntaxe suivante :

<code class="language-sql">select c.*
from comments c
join (
  values
    (1,1),
    (3,2),
    (2,3),
    (4,4)
) as x (id, ordering) on c.id = x.id
order by x.ordering</code>
Copier après la connexion

Dans cet exemple, nous utilisons la structure VALUES() pour créer une table virtuelle nommée "x". Chaque ligne de cette table virtuelle représente une valeur dans la liste IN et son ordre correspondant. Nous joignons ensuite la table « commentaires » avec la table « x » basée sur la colonne « id » et trions les résultats par la colonne « classement ». Cela garantit que les lignes récupérées sont classées dans l'ordre spécifié dans la liste IN : (1,3,2,4).

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal