Oracle11g 如何在oracle sql 11G中将列转换为行

Oracle11g 如何在oracle sql 11G中将列转换为行,oracle11g,oracle-sqldeveloper,Oracle11g,Oracle Sqldeveloper,我需要将下面的列转换为行 从table_name='table_name'所在的所有_选项卡中选择列_name' COLUMN_1 COLUMN_2 COLUMN_3 COLUMN_4 COLUMN_5 COLUMN_6 COLUMN_7 尝试使用pivot运算符/子句 如果表中包含的列数超过了在in子句中的pivot函数中无法提及的列数,我需要提及该表的所有列名 select * from ( select column_name from all_tab_cols

我需要将下面的列转换为行
从table_name='table_name'所在的所有_选项卡中选择列_name'

COLUMN_1
COLUMN_2
COLUMN_3
COLUMN_4
COLUMN_5
COLUMN_6
COLUMN_7
尝试使用pivot运算符/子句

如果表中包含的列数超过了在in子句中的pivot函数中无法提及的列数,我需要提及该表的所有列名

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
任何人都可以建议如何将列转换为行吗

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' ;

在谷歌搜索了这么久之后

我发现pivot查询没有任何动态特性

所以在我找到解决办法之后

这里下载pivot函数

运行此脚本,此脚本将自动创建pivot函数

使用此函数,我们可以从行创建动态列

示例:

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

我希望这会有所帮助。

是否要创建透视列动态?无法在我的项目中使用此选项。无论如何,感谢及时的响应,没有发生任何错误?首先你需要运行,然后上面的查询是有用的。