SQL 查询将列结果转换为行
我正在使用报告服务来制作报告图表。 但是我的数据如下所示:
Table1
C01 C02 C03 C04
1 2 3 4
I need to do a sql query to return data that looks like this:
Any_Col_name
1
2
3
4
我正在将 MS Reporting Services 与 Oracle DB 结合使用。 我无法重组表格。
I'm using reporting services to make a report graph. However my data looks like this:
Table1
C01 C02 C03 C04
1 2 3 4
I need to do a sql query to return data that looks like this:
Any_Col_name
1
2
3
4
I'm using MS Reporting Services with a Oracle DB. I cannot restructure the table.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果你使用的是Oracle 11G及以上版本,你也可以使用unpivot,它应该比union all更有效(没有测试过这个,因为我没有oracle)
If you are using Oracle 11G and above, you can also use unpivot for this, it should be more efficient than the union all (haven't tested this cause I do not have oracle around)
看看这里。
http://support.microsoft.com/kb/175574
它描述了如何“旋转” SQL Server 中的一个表。 我知道你说过购买甲骨文你可能会从中收集到一些东西。
Have a look here.
http://support.microsoft.com/kb/175574
It describes how to "rotate" a table in SQL Server. I know you said Oracle buy you might glean something from it.
这个问题我们已经解决过很多次了。 您的最佳行动计划是编写适当的 PL/SQL 函数,该函数将迭代所有列,并将它们作为行输出。 我说这样做是因为这可能不是您最后一次使用此功能。
We have solved this problem many times. Your best plan of action is to write appropriate PL/SQL functions that will iterate through all of the columns, outputting them as rows. I say to do it this way, because this will probably not be the last time you use this functionality.