sql >> Database >  >> RDS >> Mysql

Wat is het verschil tussen ifnull en coalesce in mysql?

Het belangrijkste verschil tussen de twee is dat IFNULL functie heeft twee argumenten en retourneert de eerste als deze niet NULL is of de tweede als de eerste NULL is .

COALESCE functie kan twee of meer parameters aannemen en retourneert de eerste niet-NULL parameter, of NULL als alle parameters null zijn, bijvoorbeeld:

SELECT IFNULL('some value', 'some other value');
-> returns 'some value'

SELECT IFNULL(NULL,'some other value');
-> returns 'some other value'

SELECT COALESCE(NULL, 'some other value');
-> returns 'some other value' - equivalent of the IFNULL function

SELECT COALESCE(NULL, 'some value', 'some other value');
-> returns 'some value'

SELECT COALESCE(NULL, NULL, NULL, NULL, 'first non-null value');
-> returns 'first non-null value'

UPDATE: MSSQL voert strengere type- en parametercontrole uit. Verder heeft het geen IFNULL functie maar in plaats daarvan ISNULL functie, die de typen argumenten moet kennen. Daarom:

SELECT ISNULL(NULL, NULL);
-> results in an error

SELECT ISNULL(NULL, CAST(NULL as VARCHAR));
-> returns NULL

Ook COALESCE functie in MSSQL vereist dat ten minste één parameter niet-null is, daarom:

SELECT COALESCE(NULL, NULL, NULL, NULL, NULL);
-> results in an error

SELECT COALESCE(NULL, NULL, NULL, NULL, 'first non-null value');
-> returns 'first non-null value'


  1. Incrementeel laden in SSIS

  2. MariaDB in Tokio

  3. Vervang alle velden in MySQL

  4. IS NOT NULL-test voor een record retourneert niet TRUE wanneer variabele is ingesteld