简单的SQL Pivot返回null

时间:2017-08-03 11:30:23

标签: sql sql-server

我正处于其中一天。

我正在尝试将下面的数据转换为列

  ID | SplitString
-------------------
|  1 | ABC 
|  2 | ABC03082017
|  3 | 03082017
|  4 | 1
|  5 | TestData

到目前为止,我有下面的代码,但是当我运行它时,它返回空值,列具有正确的标题但数据全部为空。

    select * 
from 
(
    select ID,splitData from dbo.fn_splitstring(@RawData_Header, '|')
) src
pivot
(
    MAX(ID) for splitData in ([Identifier], [ProviderCode], [FileDate],[Code],[FileName])
) piv;

数据透视脚本的第一部分正常工作并返回上面的表格。

编辑**

我正在尝试返回类似于下图的数据

enter image description here

感谢您的帮助

诺勒

1 个答案:

答案 0 :(得分:1)

如果您想使用PIVOT,则必须将代码更改为:

 select [1] AS [Identifier], [2] AS [ProviderCode], [3] AS [FileDate], [4] AS [Code], [5] AS [FileName]
from 
(
    select ID,splitData from dbo.fn_splitstring(@RawData_Header, '|')
) src
pivot
(
    MAX(splitData) for Id in ([1],[2],[3],[4],[5])
) piv;

详细了解PIVOT and UNPIVOT