sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Por qué los valores NULL aparecen primero cuando se solicita DESC en una consulta de PostgreSQL?

En realidad, con el orden de clasificación predeterminado (ASCENDING ) Los valores NULL vienen último .

La lógica dicta que el orden de clasificación se invierta con DESCENDING palabra clave, por lo que los NULL vienen primero en este caso.

Pero lo mejor viene al final:puedes elegir cómo lo quieres:

  • Utilice el NULLS FIRST | LAST cláusula.

Citando el actual manual, versión 9.3 al momento de escribir:

Si NULLS LAST se especifica, los valores nulos se ordenan después de todos los valores no nulos; si NULLS FIRST se especifica, los valores nulos se ordenan antes que todos los valores no nulos. Si no se especifica ninguno, el comportamiento predeterminado es NULLS LAST cuando ASC está especificado o implícito y NULLS FIRST cuando DESC se especifica (por lo tanto, el valor predeterminado es actuar como si los nulos fueran más grandes que los no nulos). Cuando USING se especifica, el orden predeterminado de nulos depende de si el operador es menor que o mayor que.

Énfasis en negrita mío.