Maison > base de données > tutoriel mysql > Comment trier par date/heure croissante avec des valeurs NULL en premier dans PostgreSQL ?

Comment trier par date/heure croissante avec des valeurs NULL en premier dans PostgreSQL ?

DDD
Libérer: 2025-01-23 02:22:10
original
304 Les gens l'ont consulté

How to Sort by Ascending Date/Time with NULL Values First in PostgreSQL?

Champs date/heure de la table PostgreSQL triés par ordre croissant, les valeurs NULL en premier

Lors du tri par champ date/heure par ordre croissant dans une table PostgreSQL, les valeurs NULL doivent être prioritaires. De plus, les enregistrements last_updated non nuls doivent être triés par ordre croissant immédiatement après les valeurs NULL.

L'expression ORDER BY de PostgreSQL fournit le modificateur NULLS FIRST | LAST pour gérer cette situation. En précisant NULLS FIRST, les enregistrements avec une valeur NULL pour le champ last_updated apparaîtront avant les enregistrements non NULL :

... ORDER BY last_updated NULLS FIRST
Copier après la connexion

Cependant, l'utilisation de NULLS FIRST avec le tri décroissant (DESC) renvoie le résultat opposé, les valeurs NULL apparaîtront en dernier. Pour mettre les valeurs NULL en dernier dans l'ordre décroissant, utilisez NULLS LAST :

... ORDER BY last_updated DESC NULLS LAST
Copier après la connexion

Pour utiliser un index avec l'ordre de tri modifié, il doit correspondre à la définition de l'index :

CREATE INDEX foo_idx ON tbl (last_updated DESC NULLS LAST);
Copier après la connexion

Bien que PostgreSQL puisse lire les index btree à l'envers, il est plus efficace de créer un index qui correspond à l'ordre de tri :

CREATE INDEX foo_idx ON tbl (last_updated);
Copier après la connexion

La position des valeurs NULL dans la liste annexée affecte les performances des requêtes. Pour plus d’informations, consultez Impact sur les performances des vues sur les fonctions d’agrégation et limitations des jeux de résultats.

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 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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal