SQL 查询将列结果转换为行

发布于 2024-07-14 02:32:44 字数 291 浏览 6 评论 0原文

我正在使用报告服务来制作报告图表。 但是我的数据如下所示:

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

你げ笑在眉眼 2024-07-21 02:32:44
select c01 from table
union all
select c02 from table
union all
select c03 from table
union all
select c04 from table
select c01 from table
union all
select c02 from table
union all
select c03 from table
union all
select c04 from table
臻嫒无言 2024-07-21 02:32:44

如果你使用的是Oracle 11G及以上版本,你也可以使用unpivot,它应该比union all更有效(没有测试过这个,因为我没有oracle)

SELECT Any_Col_name  FROM table   
    UNPIVOT INCLUDE NULLS (Any_Col_name FOR Col IN (C01,C02,C03,C04))

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)

SELECT Any_Col_name  FROM table   
    UNPIVOT INCLUDE NULLS (Any_Col_name FOR Col IN (C01,C02,C03,C04))
和影子一齐双人舞 2024-07-21 02:32:44

看看这里。

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.

甜心 2024-07-21 02:32:44

这个问题我们已经解决过很多次了。 您的最佳行动计划是编写适当的 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文