如何在此数据透视查询的输出中将 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, ...
我正在使用 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, ...