Maison >base de données >tutoriel mysql >Comment trier les tables PostgreSQL avec des valeurs NULL en premier ou en dernier ?

Comment trier les tables PostgreSQL avec des valeurs NULL en premier ou en dernier ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-23 02:43:09704parcourir

How to Sort PostgreSQL Tables with NULL Values First or Last?

Tri des tables PostgreSQL : réglage de la priorité des valeurs NULL

Lors du tri d'une table PostgreSQL par champ date/heure par ordre croissant, vous pouvez rencontrer une situation où certains enregistrements ont des valeurs NULL dans ce champ. Généralement, ces enregistrements apparaissent après les enregistrements non NULL. Cependant, vous souhaiterez peut-être d'abord afficher les enregistrements avec des valeurs NULL.

L'expression ORDER BY de PostgreSQL fournit le modificateur NULLS FIRST à cet effet. En utilisant ce modificateur, vous pouvez trier le tableau comme suit :

<code class="language-sql">... ORDER BY last_updated NULLS FIRST</code>

Cela garantira que last_updated les enregistrements avec des valeurs NULL pour les champs apparaissent avant les enregistrements avec des valeurs non NULL.

Pour le tri décroissant, vous pouvez utiliser le modificateur NULLS LAST :

<code class="language-sql">... ORDER BY last_updated DESC NULLS LAST</code>

Pour créer un index qui prend en charge cette requête, assurez-vous qu'il correspond à l'ordre des clauses ORDER BY :

<code class="language-sql">CREATE INDEX foo_idx ON tbl (last_updated DESC NULLS LAST);</code>

Vous pouvez également créer un index sans spécifier explicitement l'option NULLS LAST, puisque PostgreSQL peut lire les index btree à l'envers :

<code class="language-sql">CREATE INDEX foo_idx ON tbl (last_updated);</code>

Dans certains cas, la position des valeurs NULL dans l'index peut affecter les performances des requêtes. Consultez la documentation PostgreSQL pour plus d'informations à ce sujet.

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