sql >> Databáze >  >> RDS >> Sqlserver

Spojení více tabulek vrátí hodnotu NULL

Je to proto, že null na obou stranách operátoru sčítání bude výsledek null . Můžete použít ISNULL(LiabilityPremium, 0) Příklad:

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

nebo můžete použít COALESCE místo ISNULL .

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

Upravit

Nejsem si jistý, zda je to shoda s tímto malým souborem dat nebo očekávané, ale pokud vždy se očekává, že buď @LiabilityPremium.LiabilityPremium nebo @HiredPremium.LiabilityPremium bude vždy null, pak není nutné provádět sčítání. Místo toho použijte COALESCE přímo na tyto 2 sloupce.

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


  1. MySQL příliš dlouhé nastavení zkrácení/chyby varchar

  2. aktualizace řádků tabulky v postgresu pomocí poddotazu

  3. Důrazně zadejte tyto parametry s hodnotou tabulky

  4. Resetování hesla ROOT v MySQL 5.6