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

How to replace NULL with zero in the output of this pivot query?

我正在使用 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。我在 SELECT 查询中尝试了 ISNULL([Mth],0),但它不起作用。

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

SELECT [Year], Market,
       ISNULL(Jan,0) AS Jan,
       ISNULL(Feb,0) AS Feb, ...