SQL 枢轴变换

SQL pivot transform

我想对从 table FloatNAR800 的行转换而来的 return 列使用数据透视查询,我有这段代码,但对我不起作用。有什么想法吗?

declare @nume_coloane as nvarchar(max),
        @dynamic_pivot_query as nvarchar(max)

set @nume_coloane = STUFF ((select ',' + QUOTENAME(TagIndex) 
                            from (select distinct TagIndex from FloatN2_NAR800) sub
                            order by TagIndex 
                            for xml path(''), type ).value('.', 'nvarchar(max)')

set @dynamic_pivot_query = 'select DateAndTime,' + @nume_coloane + 
                           'from
                                (select DateAndTime, TagIndex, Val 
                                 from FloatN2_NAR800) x
                            pivot'

当我要创建此查询时出现错误:

Incorrect syntax near the keyword 'SET'

但我不知道我做错了什么...

您缺少代码... pivot 语句未以 Pivot 关键字结尾。

You code then... 
    PIVOT
        (
            <aggregation function>(<column being aggregated>)
        FOR 
        [<column that contains the values that will become column headers>] 
            IN ( [first pivoted column], [second pivoted column],
            ... [last pivoted column])
        ) AS <alias for the pivot table>

看这里:https://technet.microsoft.com/en-us/library/ms177410(v=sql.105).aspx

我建议您先让 Pivot 工作,然后将其变成动态的 sql。