小编Bun*_*ter的帖子

动态SQL(pivot查询)转换为xml输出时,为什么日期的第一位转换为unicode?

我正在使用Bluefeet 的这个很好的例子https://dba.stackexchange.com/a/25818/113298,来创建一个数据透视表并将其转换为 xml 数据。

声明参数

DECLARE @cols AS NVARCHAR(MAX),  @query  AS NVARCHAR(MAX);
Run Code Online (Sandbox Code Playgroud)

接下来有一个代码很多的CTE,CTE的最终结果放在一个临时数据库中(与示例中相同)

SELECT 
B.[StayDate] -- this is a date dd-mm-yyyy
, B.[Guid]
INTO #tempDates
FROM BaseSelection B
Run Code Online (Sandbox Code Playgroud)

生成 cols(与示例相同)

SELECT @cols = STUFF((SELECT distinct ',' +QUOTENAME(convert(char(10), [StayDate] , 120)) 
FROM #tempDates
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)') 
,1,1,'');
Run Code Online (Sandbox Code Playgroud)

结果集是我应该期望的

set @query = 
   'SELECT [Guid],' + @cols +'
    FROM
    (
        SELECT 
            [StayDate] 
           ,[Guid]
        FROM #tempDates
    ) A
    pivot
    (
        count([StayDate])
        for [StayDate] in (' + @cols +')                    
    ) …
Run Code Online (Sandbox Code Playgroud)

xml sql-server pivot

11
推荐指数
2
解决办法
2983
查看次数

标签 统计

pivot ×1

sql-server ×1

xml ×1