1
請condider其中有兩個表,Body
和File
的情況,其中第一個的每個記錄在第二個零個或多個相應的記錄:立臥表在SQL Server 2005中
BodyID | Body
-------------
1 | X
2 | Y
FileID | BodyID | File
------------------------
1 | 1 | A
2 | 1 | B
3 | 2 | C
4 | 2 | D
5 | 2 | E
當然,這是很容易加入兩個表,並得到類似
BodyID | FileID | Body | File
-----------------------------
1 | 1 | X | A
1 | 2 | X | B
2 | 3 | Y | C
2 | 4 | Y | D
2 | 5 | Y | E
不過,我希望能夠做的就是這同一個表格轉換爲一個橫向一,像
BodyID | Body | File1 | File2 | File3 | ...
-------------------------------------------
1 | X | A | B | NULL | ...
2 | Y | C | D | E | ...
當沒有文件時,每列被替換爲NULL
(或任何其他「有意義」的值)。問題是我既不能使用D-SQL也不能使用遊標。任何人都可以請幫我嗎?
在此網站上查找「sql數據透視表」。 – Oded
雖然您需要動態SQL或者將大量常量「Filen」列硬編碼至最大值。您需要在'ROW_NUMBER OVER(PARTITION BY BodyID ORDER BY文件)'''PIVOT'' –