2017-08-03 146 views
0

我有这些日子之一。简单的SQL Pivot返回null

我想下面透视数据成列

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

由于与图像数据的帮助

诺伊尔

+0

您的预期产出是多少? –

+0

这是返回'NULL',因为在'splitData'列中没有包含值'[Identifier],[ProviderCode],[FileDate],[Code],[FileName]'的值的行。你想要达到什么目的? – Rokuto

+0

@康南我添加了所需结果的图像。谢谢 – Noelle

回答

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

+0

非常感谢您的帮助和链接。这工作完美。作为此功能的一部分,我有更复杂的工作要做,这些链接将非常有帮助。 – Noelle