Ordenando consultas con valores NULL en MySQL
Cuando trabajamos con bases de datos, normalmente tendremos casos en los que existan valores nulos tanto en nuestras tablas como en el resultado de nuestras consultas. Sin embargo, esta realidad, también provoca que algunas acciones como las ordenaciones sean problemáticas. Para poder superar estas dificultades disponemos de funciones como coalesce() (buscad dentro del enlace).
La función coalesce()
¿Qué hace esta función? Recibe una serie de parámetros y devuelve el primero que no es nulo.
Forma de uso
Por lo tanto, si tenemos una columna edad, por ejemplo, que puede ser nulo o no serlo, y ponemos:
COALESCE(edad, 0) esta función devolverá la edad si no es nula y si es nula, el primer valor no nulo de la lista de parámetros, como sólo hay dos parámetros, será el siguiente, 0.
Ordenando con valores nulos
Siguiendo este ejemplo podríamos hacer una ordenación a nuestro antojo, es decir, si queremos ordenar primero las fechas de los más mayores, es decir, en sentido descendente y poner al final los valores nulos, podríamos hacer justo:
SELECT nombre, apellidos FROM personas ORDER BY (edad, 0)