Zitat Zitat von Fuerchau Beitrag anzeigen
Beachte die oben bereits mehrfach erwähnte Bedingung:

Ist bei einem Ausdruck ein Teilergebnis NULL dann ist der gesamte Ausdruck immer NULL!

D.h., mit NULL kann ich eben nicht weiterrechnen und genau dafür ist der Coalesce eben da.
Da er mehrere Ausdrücke erlaubt ist es in SQL eben sehr einfach einen möglichen Wert aus mehreren Joins zu ziehen:

select coalesce(a.value, b.value, c.value)
from mytable m
left join table1 a on a.key = m.key
left join table2 b on b.key = m.key
left join table3 a on c.key = m.key

Desweiteren:
STRSQL zeigt fehlerhafte Ausdrücke mit "+++++" an.
Im embedded SQL hört der SQL i.d.R. beim ersten Fehler auf.

Wenn ich per ODBC Daten abhole kann es sogar passieren, dass der SQL durch den Fehler vorzeitig aufhört, allerdings auch keine Fehlermeldung abgibt und ich somit gar nciht weiß, ob der SQL alles geliefert hat.
Alles schon erlebt.
Was ich meine ist das dies auf ALLE NULLwerte zu trifft, nicht nur auf eine Division durch 0.
Und ja, in bestimmten PHP Versionen mit ODBC macht er dann (in dem Fall keine Div sondern eben den erwähnten Join) einen Segfault.

Daher bin es ja gewohnt mit coalesce zu arbeiten ... intensiv. Aber das er eben bei einem coalesce(wert, 0) trotzdem ein NULL zurück gibt hatte ich noch nicht.