SQL Query将列结果放入行中

时间:2009-02-19 23:03:13

标签: sql reporting service

我正在使用报告服务来制作报告图表。但是我的数据看起来像这样:

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

我正在使用带有Oracle DB的MS Reporting Services。我不能重组这张桌子。

4 个答案:

答案 0 :(得分:6)

select c01 from table
union all
select c02 from table
union all
select c03 from table
union all
select c04 from table

答案 1 :(得分:2)

如果您使用的是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))

答案 2 :(得分:1)

看看这里。

http://support.microsoft.com/kb/175574

它描述了如何在SQL Server中“旋转”表。我知道你说甲骨文买的你可能从中收集了一些东西。

答案 3 :(得分:0)

我们已经多次解决了这个问题。您最好的行动计划是编写适当的PL / SQL函数,这些函数将遍历所有列,并将它们作为行输出。我说是这样做的,因为这可能不是你最后一次使用这个功能。