2015-01-28 3 views
0

I SQL 서버에 대한 다음과 같은 쿼리가 :SQL 서버가 작동하지 ISNULL

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

I가 그것을 실행하고 테이블이 비어 있습니다. 주어진 ISNULL 절은 0을 반환 할 것으로 기대합니다.

그러나 NULL을 반환합니다.

나는 여러 가지 게시물을보고 다양한 조합의 코드를 시도했지만 그 중 아무 것도 내가 원하는 결과를 산출하지 못했습니다.

내가 뭘 잘못하고 있니?

답변

2

당신은 ISNULLSUM 내부에 필요하지 않습니다 : 문제의 사용을 해결합니다. 대신 합계를 감싸십시오. 시험.

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)