我正在尋找一種解決方案,以將以下列轉換爲t-SQL的兩個新行(我使用2008年,如果重要)。TSQL - 行列與新列
這裏是什麼,我有一個例子:
[Question1] | [Question2] | [Question3] | [Question4] | [Question5] | [Question6]
1 'Answer1' 'Answer2' 'Answer3' 'Answer4' 'Answer5' 'Answer6'
這裏是我想什麼一個例子:
[Questions] | [Answers]
1 'Question1' 'Answer1'
2 'Question2' 'Answer2'
3 'Question3' 'Answer3'
4 'Question4' 'Answer4'
5 'Question5' 'Answer5'
6 'Question6' 'Answer6'
我希望我的例子是很清晰。
謝謝。
因此,在用戶2989408和M.Ali之間,我能夠拼湊查詢。 我主要使用user2989408的查詢,但很快發現我需要爲我的查詢設置數據類型,否則它將無法工作。我只是施放(列爲varchar(max)),它工作。
這是我最終的結果。
select
Question
, Answer
from
(select
, cast(Question1 as varchar(max))
, cast(Question2 as varchar(max))
, cast(Question3 as varchar(max))
, cast(Question4 as varchar(max))
, cast(Question5 as varchar(max))
, cast(Question6 as varchar(max))
from table) p
unpivot
(Answers for Questions in
( Question1
, Question2
, Question3
, Question4
, Question5
, Question6)
)AS unpvt;
非常感謝。
嘗試UNPIVOT。 http://technet.microsoft.com/en-us/library/ms177410%28v=sql.105%29.aspx – PeterRing