我正在使用SQL Server 2014,我有一个在我的数据库上运行的Pivot查询,并且工作正常。我的问题是某些字段中包含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))
但它不起作用。我还在[2015年3月],[2015年4月]和[2015年5月]旁边的查询的第一个select语句中尝试了NULLIF,但它仍然无效!
答案 0 :(得分:1)
如果两个表达式相等,NULLIF函数将返回0,因此它将在示例中将0替换为null。
查看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]