2014-11-15 2 views
-1

결과가 Null 인 경우 "0"을 반환하려고하는 SQL 쿼리가 있습니다.IS NULL, NULLIF, COALESCE, 작동하지 않습니다.

는 지금까지 내가 시도 :

SELECT  NULLIF (Amountt, '0') AS count 
FROM   1Table 
WHERE  (Operations_Day BETWEEN @startdate AND @enddate) AND (location = @Storenumber) AND (Hour = '18') 

SELECT  ISNULL(Amountt, 0) AS count 
FROM   1Table 
WHERE  (Operations_Day BETWEEN @startdate AND @enddate) AND (location = @Storenumber) AND (Hour = '18') 

SELECT CASE WHEN (Amountt IS NULL) THEN 0 ELSE Amountt END AS count 
FROM   1Table 
WHERE  (Operations_Day BETWEEN @startdate AND @enddate) AND (location = @Storenumber) AND (Hour = '18') 

모든 결과는 VB.net에서 잘 처리되지 않은 빈 문자열을 반환 어떻게 반환 할 수 있습니다 "0"

답변

0

Amountt가 아닌 것을 의미 NULL. case 대신 사용해보십시오 : 상황이 코드를 행을 반환하지 않습니다이다

select (case when Amountt is null or Amountt = 'NULL' or Amountt = '' then 0 else Amountt end) 

경우에, 당신은 집계를 사용할 수 있습니다

SELECT COALESCE(SUM(Amountt), '0') AS count 
FROM 1Table 
WHERE (Operations_Day BETWEEN @startdate AND @enddate) AND 
    (location = @Storenumber) AND (Hour = '18'); 
+0

는 null입니다. 기본 SELECT 문으로 변경하면 "NULL"이 반환됩니다. – Shmewnix

+0

이 태그는 SQL Server 2000 태그입니다. – Shmewnix

+0

집계가 작동했습니다. , 나는 왜 확실하지 않다. 그것은 쿼리가 간단한 select 문일 때 "NULL"값을 반환합니다 ... 어떤 이유입니까? – Shmewnix