próbuję podsumować sald klientów za pomocą następującego zapytania:Moje zapytanie SUM zwraca wartość null. Należy zwrócić 0
select sum(balance) from mytable where customer = 'john'
Jednakże, jeśli klient nie ma równowagi (czyli żadnych zgodnych wierszy w tabeli mytable
), moja kwerenda zwraca null a nie 0. W czym problem?
COALESCE jest o wiele lepiej tutaj niż isnull –
@ScottSelby: Jak to? AFAIK, 'isnull' jest bardziej przewidywalny, ponieważ zawsze zwraca typ danych pierwszego argumentu. – Andomar
@Andomar "Wyrażenie zawierające ISNULL z parametrami innymi niż NULL jest uważane za NIE JEST NULL, natomiast wyrażenia zawierające COALESCE z parametrami innymi niż NULL są uważane za NULL" - zawsze używam COALESCE, zawsze będzie to miało wartość zerową, nawet jeśli saldo nie jest zerowalne –