oracle 获取所有列的名称并将它们提取到一行中

svdrlsy4  于 2023-04-05  发布在  Oracle
关注(0)|答案(2)|浏览(140)

所以,我知道我可以用查询来选择COLUMN名称:

SELECT column_name FROM ALL_TAB_COLS WHERE table_name = 'MY_TABLE_NAME'

它工作正常,如果我使用rownum = 1

OUTPUT: sz.price

我必须使用它,因为它是EAS(企业软件)中的查询。如果我不使用它-〉subquery returns more than one row
我怎样才能把MY_TABLE_NAME fetch中的所有列的名字都放到一行中?

expected OUTPUT: sz.price, sz.column2, sz.column3, ....

版本:Oracle Database 11 g 11.2.0.4.0版

uqjltbpv

uqjltbpv1#

可以使用listagg

select listagg(column_name, ',' )  within group (order by column_name) as "columns"
  from all_tab_columns
 where table_name = 'MY_TABLE_NAME';
liwlm1x9

liwlm1x92#

这是可行的:

select listagg(col_name, ',') WITHIN GROUP (ORDER BY col_name)from(SELECT column_name  
FROM ALL_TAB_COLS WHERE table_name = 'MY_TABLE_NAME');

相关问题