将行转换为列 oracle SQL

Convert rows to columns oracle SQL(将行转换为列 oracle SQL)
本文介绍了将行转换为列 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))

这篇关于将行转换为列 oracle SQL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

SQL to Generate Periodic Snapshots from Transactions Table(用于从事务表生成定期快照的SQL)
MyBatis support for multiple databases(MyBatis支持多个数据库)
Oracle 12c SQL: Missing column Headers in result(Oracle 12c SQL:结果中缺少列标题)
SQL query to find the number of customers who shopped for 3 consecutive days in month of January 2020(查询2020年1月连续购物3天的客户数量)
SQL Server 2016 - How to do a simple pivot(SQL Server 2016-如何进行简单的透视)
How to get top 10 data weekly (This week, Previous week, Last month, 2 months ago, 3 month ago)(如何每周获取前十大数据(本周、前一周、上个月、2个月前、3个月前))