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!