在您的表格中假设此输入:
insert into answer SELECT 1, 1, 123, 'Answer ZZZZ'
insert into answer SELECT 2, 2, 123, 'Answer AAAA'
insert into answer SELECT 3, 3, 123, 'Answer BBBB'
insert into answer SELECT 4, 1, 345, 'Answer CCCC'
insert into answer SELECT 5, 2, 345, 'Answer DDDD'
insert into answer SELECT 6, 1, 678, 'Answer EEEE'
insert into answer SELECT 7, 2, 678, 'Answer FFFF'
insert into answer SELECT 8, 3, 678, 'Answer SSSS'
insert into answer SELECT 9, 3, 999, 'Answer RRRR'
你可以这样做:
SELECT user_id, [1] as Answer1, [2] as Answer2, [3] as Answer3
FROM (
SELECT question_id, user_id, answer
FROM answer) P
PIVOT
(
MAX (answer)
FOR Question_id IN ([1], [2], [3])
) AS pvt
你会得到这个结果:
user_id Answer1 Answer2 Answer3
123 Answer 1 Answer AAAA Answer BBBB
345 Answer CCCC Answer DDDD NULL
678 Answer EEEE Answer FFFF Answer SSSS
999 NULL NULL Answer RRRR