Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Das Verbinden mehrerer Tabellen gibt den NULL-Wert zurück

Das liegt daran, dass null auf beiden Seiten des Additionsoperators ergibt ein Ergebnis von null . Sie können ISNULL(LiabilityPremium, 0) verwenden Beispiel:

ISNULL(l.LiabilityPremium,0) + ISNULL(h.LiabilityPremium,0) as LiabilityPremium

oder Sie können COALESCE verwenden statt ISNULL .

COALESCE(l.LiabilityPremium,0) + COALESCE(h.LiabilityPremium,0) as LiabilityPremium

Bearbeiten

Ich bin mir nicht sicher, ob dies Zufall mit diesem kleinen Datensatz ist oder erwartet, aber wenn es wird immer erwartet, dass entweder @LiabilityPremium.LiabilityPremium oder @HiredPremium.LiabilityPremium immer null sein, dann besteht keine Notwendigkeit, eine Addition durchzuführen. Verwenden Sie stattdessen COALESCE direkt auf diesen 2 Spalten.

COALESCE(l.LiabilityPremium, h.LiabilityPremium) as LiabilityPremium