如何在此数据透视查询的输出中将NULL替换为零?

时间:2018-01-30 11:25:21

标签: sql sql-server tsql isnull

我正在使用SQL Server 2012,我有以下SQL查询:

SELECT * 
FROM 
    (SELECT [Mth], [Year], [Amount], [Market] 
     FROM CTE1

     UNION ALL

     SELECT [Mth], [Year], [Amount], [Market] 
     FROM CTE2) x
PIVOT
    (SUM(x.[Amount) 
     FOR x.[Mth] IN ([Jan], [Feb], [Mar], [Apr], [May], [Jun], [Jul], [Aug], [Sep], [Oct], [Nov], [Dec])
    ) AS PVTTable

输出提取如下:

Year    Market   Jan Feb  Mar   Apr  May  Jun   Jul     Aug    Sep      Oct    Nov   Dec
2017    France   11  20   NULL  16   NULL  8    NULL    NULL    NULL    NULL    5     9

我想用零替换NULL。我在我的ISNULL([Mth],0)查询中尝试了SELECT,但它无效。

1 个答案:

答案 0 :(得分:0)

此处SUM(x.[Amount])的值为 NULL ,而不是[mth]。但是,我不确定您是否可以在ISNULL中使用PIVOT(没有用于实际检查的样本数据(我倾向于使用交叉枢轴,而不是使用{{1}如果你不能,你需要将PIVOT放在外ISNULL州:

SELECT