Den største forskel mellem de to er, at IFNULL funktion tager to argumenter og returnerer det første, hvis det ikke er NULL eller den anden, hvis den første er NULL .
COALESCE funktion kan tage to eller flere parametre og returnerer den første ikke-NULL parameter eller NULL hvis alle parametre er null, for eksempel:
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'
OPDATERING: MSSQL udfører strengere type- og parameterkontrol. Desuden har den ikke IFNULL funktion, men i stedet ISNULL funktion, som skal kende typerne af argumenterne. Derfor:
SELECT ISNULL(NULL, NULL);
-> results in an error
SELECT ISNULL(NULL, CAST(NULL as VARCHAR));
-> returns NULL
Også COALESCE funktion i MSSQL kræver, at mindst én parameter er ikke-nul, derfor:
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'