我没有找到任何合适的先前答案,因此发布了问题。我需要将行转换为列。 PIVOT示例都将行转换为单个列,而我的要求是多列。我的表看起来像这样
Type ID
test1 10
test1 20
test1 30
test2 10
test2 40
我希望它是
Type ID Type ID
test1 10 test2 10
test1 20 test2 40
test1 30
感谢您的建议/输入!
答案 0 :(得分:1)
您可以使用row_number()
枚举行并生成pivot
:
select *
from (
select d.*, row_number() over(partition by type order by id) rn from data d)
pivot (max(type) type, max(id) id for type in ('test1' t1, 'test2' t2))
答案 1 :(得分:-1)
如果'ID'列是主键,则表中只能有一列作为主键。