2011-08-30 31 views
11

Estoy seleccionando el máximo de una columna de una tabla. Pero hay un problema: si no hay filas en la tabla, devuelve nulo.¿Existe una función equivalente a la función de Oracle NVL en Mysql?

Quiero usar una función que devolverá un cierto valor si el resultado es nulo. Por ejemplo, con Oracle existe la función NVL que le da un cierto valor si la columna es nula. ¿Hay una función equivalente en MySQL?

Respuesta

16
select coalesce(column_name, 'NULL VALUE') from the_table 
+3

Esa es la versión estándar SQL de NVL, y trabaja en Oracle, también (desde 9i, creo). – Thilo

+0

La pregunta es: "Pero hay un problema: si no hay filas en la tabla, devuelve nulo". Sin embargo, la fusión no resuelve esto: si no se devuelven las filas, no se devuelven las filas. Todo lo que hace es garantizar un valor no nulo para una cierta columna *, dado que se devuelven algunas filas * Pero tampoco lo hace nvl en el oráculo :) – Adam

+0

@Adam. La función agregada 'max' devolverá una sola fila (con nulo en ella) incluso si no hay filas en la tabla. Todo lo que se fusiona (y toda la pregunta sobre) es un cambio nulo a un valor predeterminado. – Thilo

Cuestiones relacionadas