2015-01-28 5 views
0

У меня есть следующий запрос для сервера SQL:SQL Server не IsNull работает

SELECT SUM(ISNULL(CurrentVendorLastPurchCost, 0)) AS TheSum FROM VW_Report_AvailableInventory WITH(NOLOCK) 

В таблице, что я бегу его пуст. Учитывая условие ISNULL, я ожидаю, что он вернется 0.

Однако он возвращает NULL.

Я просмотрел несколько сообщений и пробовал различные комбинации кода, но ни один из них не дает результат, который я хочу.

Что я делаю неправильно?

ответ

2

Вам не нужно ISNULL внутри SUM. Оберните его вокруг суммы. Пытаться.

SELECT ISNULL(SUM(CurrentVendorLastPurchCost), 0) AS TheSum FROM VW_Report_AvailableInventory WITH(NOLOCK) 
2

Поскольку ваша таблица пуста, то у вас нет никакой ценности, чтобы применить функцию ISNULL, а результат SUM на пустом множестве - NULL. Вы не должны заботиться о суммах null. Для того, чтобы решить использовать выпуск:

SELECT ISNULL(SUM(CurrentVendorLastPurchCost), 0) AS TheSum 
FROM VW_Report_AvailableInventory WITH(NOLOCK)