我有一個臨時表,其中有一列有四行。使用SQL查詢使行進入列
Table
------
vaibhav
IBM
12
'T'
我需要一個臨時表
Col1 Col2 Col3 Col4
------ ----- ----- ------
Vaibhav IBM 12 'T'
沒有人有任何想法?
我有一個臨時表,其中有一列有四行。使用SQL查詢使行進入列
Table
------
vaibhav
IBM
12
'T'
我需要一個臨時表
Col1 Col2 Col3 Col4
------ ----- ----- ------
Vaibhav IBM 12 'T'
沒有人有任何想法?
我相信你正在尋找支點條款,直接從MSDN ...
您可以使用PIVOT和UNPIVOT關係運算符來改變一個表值表達式到另一個表。 PIVOT通過將表達式中的一列中的唯一值轉換爲輸出中的多列來旋轉表值表達式,並在最終輸出中需要的任何剩餘列值上執行聚合。通過將表值表達式的列轉換爲列值,UNPIVOT執行與PIVOT相反的操作。
查看msdn article瞭解更多信息。
標準PIVOT語句的問題是您需要事先知道列值,因此您可以在「FOR xxx IN('x','y','x'...)」中定義它們。聲明。
爲了解決這個問題,你需要做一些動態SQL並創建一個包含列的字符串。
在這一個有趣的文章是在這裏:
http://www.simple-talk.com/community/blogs/andras/archive/2007/09/14/37265.aspx
我已經建立了使用這一技術的許多PIVOT查詢,儘管動態SQL不能優化,以及那些難以存儲過程編碼,他們工作得很好。
如果需要我可以發佈一些示例代碼。