请考虑有两个表Body
和File
的情况,其中第一个表中的每个记录在第二个表中都有零个或多个相应记录:
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也不能使用游标。有人可以帮帮我吗?
答案 0 :(得分:2)
每当您需要将行转换为列时,请使用pivot.you可以搜索msdn以获取数据。