2011-08-30 21 views
11

Sto selezionando il massimo di una colonna da una tabella. Ma c'è un problema: se non ci sono righe nella tabella, restituisce null.Esiste una funzione equivalente alla funzione Oracle NVL in Mysql?

Desidero utilizzare una funzione che restituirà un determinato valore se il risultato è nullo. Ad esempio con Oracle esiste la funzione NVL che fornisce un determinato valore se la colonna è nullo. Esiste una funzione equivalente in MySQL?

risposta

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

Questa è la versione standard SQL di NVL e funziona anche in Oracle (dal 9i, credo). – Thilo

+0

La domanda chiede _ "Ma c'è un problema: se non ci sono righe nella tabella, restituisce null." _ Tuttavia, la coalescenza non risolve questo - se non vengono restituite righe, non viene restituita alcuna riga. Tutto ciò che fa è garantire un valore non nullo per una certa colonna * dato che alcune righe vengono restituite * Ma allora, nemmeno nvl in oracle :) – Adam

+0

@Adam. La funzione di aggregazione 'max' restituirà una singola riga (con null in essa) anche se non ci sono righe nella tabella. Tutto ciò che fa la coalizione (e tutta la domanda posta) è il cambiamento che è nullo in un valore predefinito. – Thilo

Problemi correlati