Как перенести столбец в строку в Oracle XL 11G

Мне нужно преобразовать столбец в строку для нижеselect column_name from all_tab_cols where table_name='TABLE_NAME' ;

COLUMN_1
COLUMN_2
COLUMN_3
COLUMN_4
COLUMN_5
COLUMN_6
COLUMN_7

Пробовал с помощью оператора / предложения поворота,

мне нужно упомянуть все имена столбцов для таблицы, если таблица содержит больше номеров столбцов, это было бы невозможно упомянуть в функции сводки в предложении in,

select * from
(
    select column_name
    from all_tab_cols
    where table_name = 'TABLE_NAME'
)
pivot ( min(column_name) for column_name in 
(
'COLUMN_1', 'COLUMN_2', 'COLUMN_3', 'COLUMN_4', 'COLUMN_5', 'COLUMN_6', 'COLUMN_7'
));

Ожидаемый результат:

COLUMN_1    COLUMN_2    COLUMN_3    COLUMN_4    COLUMN_5    COLUMN_6    COLUMN_7

Может ли кто-нибудь, пожалуйста, посоветуйте, как преобразовать столбец в строки

 Sanjay Radadiya29 июл. 2016 г., 07:49
Вы хотите создать динамическую колонку?

Ответы на вопрос(2)

Решение Вопроса

Попробуй это:

select listagg(A,'  ') within group (order by A) as Names
from test

В этом случае запрос выглядит так:

select listagg(column_name,'  ')  within group (order by column_name) as column_name
from all_tab_cols 
where table_name='TABLE_NAME' ;
 user301607502 авг. 2016 г., 07:07
Благодарю. Этот запрос работает нормально

после стольких времени на поиск в Google

я обнаружил, что сводный запрос не имеет никаких динамических функций

так что после того, как я нашел решение здесь

https://technology.amis.nl/2006/05/24/dynamic-sql-pivoting-stealing-antons-thunder/

здесь скачать функцию поворота здесь

http://paste.ubuntu.com/21378705/

запустить этот скрипт и этот скрипт автоматически создаст функцию pivot

с помощью этой функции мы можем создать динамический столбец из строк.

Пример :

    select * from table( pivot(  Q'$ select column_name,column_name name 
    from all_tab_cols where table_name = 'TABLE_NAME' 

Я надеюсь, это поможет.

) )

Я надеюсь, это поможет.

 user301607502 авг. 2016 г., 07:08
Невозможно использовать это в моем проекте. В любом случае, благодаря быстрому ответу
 Sanjay Radadiya02 авг. 2016 г., 07:09
произошла какая-либо ошибка? сначала нужно бежатьpaste.ubuntu.com/21378705 и после вышеупомянутого запроса является полезным.

Ваш ответ на вопрос