sql >> Database teknologi >  >> RDS >> Mysql

Hvad er forskellen mellem ifnull og coalesce i mysql?

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'


  1. Lodret skalering af PostgreSQL

  2. 10 nyttige Microsoft Access-genveje, når du arbejder med kontrolelementer på formularer og rapporter

  3. Forbind iPhone-appen til PostgreSQL ved hjælp af Libpq

  4. MySQL og PHP:UTF-8 med kyrilliske tegn