Return 我的 SQL 数据透视查询中的 NULL 为零

Return NULL as Zero from my SQL Pivot query

我正在使用 SQL Server 2014,并且我有一个在我的数据库上运行并且工作正常的数据透视查询。我的问题是某些字段中有 NULL。我希望将 NULLS 替换为零。

我的查询如下:

(SELECT [PROPERTYCODE],
        [MARKET FINAL],
        [MARCH 2015],
        [APRIL 2015],
        [MAY 2015]          

FROM (SELECT [PropertyCode],
         [MTH],
         [Room Nights],
         [Market FINAL]

   FROM HOLDINGS2

)m

PIVOT (Sum([ROOM NIGHTS])
     FOR [MTH] IN ([MARCH 2015],
                   [APRIL 2015],
                   [MAY 2015]                      
                    )) AS PVTTABLE)
 ORDER BY [PropertyCode],[Market FINAL]

输出如下所示:

PropertyCode   MarketFinal  March 2015  April 2015    May 2015 

    A            UK           245          NULL          320

我需要 NULLS 为零。

我已经在 Pivot 语句上试过了:

PIVOT (Sum(NULLIF[ROOM NIGHTS],0))

但是没有用。我还在 [MARCH 2015]、[APRIL 2015] 和 [MAY 2015] 旁边的查询的第一个 select 语句中尝试了 NULLIF,但它仍然不起作用!

如果两个表达式相等,NULLIF 函数将 return 0,因此在您的示例中它将用 null 替换 0。

看看ISNULL函数

(SELECT [PROPERTYCODE],
    [MARKET FINAL],
    [MARCH 2015],
    [APRIL 2015],
    [MAY 2015]          

FROM (SELECT [PropertyCode],
     [MTH],
     isnull([Room Nights] , 0),
     [Market FINAL]

FROM HOLDINGS2

)m

PIVOT (Sum([ROOM NIGHTS])
 FOR [MTH] IN ([MARCH 2015],
               [APRIL 2015],
               [MAY 2015]                      
                )) AS PVTTABLE)
 ORDER BY [PropertyCode],[Market FINAL]