我无法从动态查询结果中删除空值。从动态查询中删除NULLS
这里是什么将成为#T3表的例子:
BornDate | ClickDate | Clicks
10/23/2014 | 11/19/2014 | 25
10/23/2014 | 11/18/2014 | 6
10/23/2014 | 11/20/2014 | 5
10/23/2014 | 11/22/2014 | 17
10/23/2014 | 11/23/2014 | 11
10/24/2014 | 11/19/2014 | 1
10/24/2014 | 11/18/2014 | 6
10/24/2014 | 11/20/2014 | 3
10/24/2014 | 11/21/2014 | 3
10/24/2014 | 11/23/2014 | 2
所以,我的问题是,我怎么去除NULL
值当我运行下面的查询?
这里是我的查询
DECLARE @DynamicPivotQuery AS NVARCHAR(MAX)
DECLARE @ColumnName AS NVARCHAR(MAX)
--Get distinct values of the PIVOT Column
SELECT @ColumnName= ISNULL(@ColumnName + ',','')
+ QUOTENAME(ClickDate)
FROM (SELECT DISTINCT ClickDate FROM #t3) AS ClickDate order by ClickDate
--Prepare the PIVOT query using the dynamic
SET @DynamicPivotQuery =
'SELECT BornDate, ' + @ColumnName + '
FROM #t3
PIVOT (SUM(Clicks)
FOR ClickDate IN (' + @ColumnName + ')) AS PVTTable order by 1, 2'
--Execute the Dynamic Pivot Query
EXEC sp_executesql @DynamicPivotQuery
查询的结果是:
| BORNDATE | 2014-11-18 | 2014-11-19 | 2014-11-20 | 2014-11-21 | 2014-11-22 | 2014-11-23|
|------------|------------|------------|------------|------------|------------|-----------|
| 2014-10-23 | 6 | 25 | 5 | (null) | 17 | 11 |
| 2014-10-24 | 6 | 1 | 3 | 3 | (null) | 2 |
你看到在2014年10月23日线在2014年11月21日列中的空值。再次为2014年10月24日在列中的2014年10月24日行。我想替换这些空值。
你在你的'clicks'列得到一个NULL并要显示一个零呢?尝试使用'SUM(COALESCE(Clicks,0))' – laylarenee 2015-01-09 21:23:00
@laylarenee我相信-lee要求结果集没有任何空值。 – 2015-11-18 13:39:18