将行转换为列 oracle SQL
我没有找到任何合适的先前答案,因此发布了这个问题.我需要将行转换为列.PIVOT 示例都将行转换为单列,而我的要求是多列.我的桌子是这样的
I did not find any suitable previous answers hence posting the question. I need to convert rows to columns. The PIVOT examples all convert the rows to a single column whereas my requirement is multiple columns. My table looks like this
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
感谢您的建议/意见!
推荐答案
您可以使用 row_number()
枚举行并制作 pivot
:
You could enumerate rows with row_number()
and make pivot
:
SQLFiddle 演示
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))
相关文章