Ich würde die
Coalesce - Funktion verwenden
COALESCE(value1,value2,value3,...)
Die Funktion liefert als Ergebnis den Parameter zurück der nicht NULL ist.
Ausgewertet wird von links nach rechts.
Falls alle Parameter gleich NULL sind liefert die Funktion natürlich auch NULL zurück.
Coalesce() ist
SQL/92 kompatibel und wird von sehr vielen Datenbanken unterstützt.
Man kann so z.B. sicherstellen dass ein Feld immer einen Wert <> NULL erhält:
SQL-Code:
-- Beispiel
UPDATE foo SET Preis = COALESCE( @Preis, Preis, 0.0 ) WHERE id = 2
Sollte der Parameter @Preis als auch der alte Wert des Feld "Preis" gleich NULL sein dann greift immer noch der 3. Wert.
Irgendwie schöner und nützlicher als IFNULL().