PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Pourquoi les valeurs NULL viennent-elles en premier lors de la commande DESC dans une requête PostgreSQL ?

En fait, avec l'ordre de tri par défaut (ASCENDING ) Les valeurs NULL viennent en dernier .

La logique veut que l'ordre de tri soit inversé avec le DESCENDING mot-clé, donc les valeurs NULL viennent en premier dans ce cas.

Mais le meilleur vient en dernier :vous pouvez choisir la manière dont vous le souhaitez :

  • Utilisez le NULLS FIRST | LAST clause.

Citant le courant manuel, version 9.3 au moment de la rédaction :

Si NULLS LAST est spécifié, les valeurs nulles sont triées après toutes les valeurs non nulles ; si NULLS FIRST est spécifié, les valeurs nulles sont triées avant toutes les valeurs non nulles. Si aucun n'est spécifié, le comportement par défaut estNULLS LAST quand ASC est spécifié ou implicite , et NULLS FIRST quand DESC est spécifié (ainsi, la valeur par défaut consiste à agir comme si les valeurs nulles étaient plus grandes que les non nulles). Lorsque USING est spécifié, l'ordre des valeurs nulles par défaut varie selon que l'opérateur est inférieur à ou supérieur à.

J'insiste sur moi.