2017-08-03 147 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