SQL-запрос превращает результаты столбцов в строки - PullRequest
1 голос
/ 20 февраля 2009

Я использую службы отчетов для составления графика отчетов. Однако мои данные выглядят так:

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. Я не могу реструктурировать таблицу.

Ответы [ 4 ]

6 голосов
/ 20 февраля 2009
select c01 from table
union all
select c02 from table
union all
select c03 from table
union all
select c04 from table
2 голосов
/ 20 февраля 2009

Если вы используете Oracle 11G и выше, вы также можете использовать unpivot для этого, он должен быть более эффективным, чем union all (не проверял, потому что у меня нет оракула вокруг)

SELECT Any_Col_name  FROM table   
    UNPIVOT INCLUDE NULLS (Any_Col_name FOR Col IN (C01,C02,C03,C04))
1 голос
/ 20 февраля 2009

Посмотрите здесь.

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

Описывает, как «вращать» таблицу в SQL Server. Я знаю, что вы сказали, что Oracle купит, вы можете почерпнуть что-нибудь из этого

0 голосов
/ 20 февраля 2009

Мы решали эту проблему много раз. Лучший план действий - написать соответствующие функции PL / SQL, которые будут перебирать все столбцы, выводя их в виде строк. Я говорю сделать это таким образом, потому что это, вероятно, будет не в последний раз, когда вы используете эту функцию.

...