Oracle 在select语句中使用输出

Oracle 在select语句中使用输出,oracle,oracle-sqldeveloper,Oracle,Oracle Sqldeveloper,我有一个例子,我必须从select语句中的240列中选择100列,因为我在下面的查询中使用了这些列来获取这100列,但无法在select语句中使用它们 查询: 选择组(按列名称排序)中的listagg(列名称“,”)作为列名称 从所有标签栏 其中较低的(列名称)如“test%” 结果: 上校姓名 测试1,测试2,测试3,…测试100 预期产出: 在select语句中使用这些结果值 选择test1、test2、test3。。。。表中的test100 提前感谢动态查询是您在这里想要的。您可以在存储过

我有一个例子,我必须从select语句中的240列中选择100列,因为我在下面的查询中使用了这些列来获取这100列,但无法在select语句中使用它们

查询:

选择组(按列名称排序)中的listagg(列名称“,”)作为列名称

从所有标签栏

其中较低的(列名称)如“test%”

结果

上校姓名

测试1,测试2,测试3,…测试100

预期产出

在select语句中使用这些结果值

选择test1、test2、test3。。。。表中的test100


提前感谢

动态查询是您在这里想要的。您可以在存储过程或函数中使用以下两个查询

select listagg(column_name,',') WITHIN GROUP (ORDER BY column_name) as col_name INTO VAR_COL_DETAILS   
from all_tab_cols    
where lower(column_name) like 'test%'

execute IMMIDEATE 'SELECT '||VAR_COL_DETAILS|| 'FROM TABLE_NAME';   

... 选择组(按列名称排序)| |表中的“从列表中选择”作为qry。。。你是说这个吗?然后在下一个查询中使用查询的输出。例如,使用execute immediate。谢谢,是的,我也希望如此,但不知道如何使用execute immediateWell,您肯定想从某个应用程序运行此功能。因此,使用您的查询,根据其结果构建最终的查询字符串并执行它。问题出在哪里?谢谢,但是在执行上面的查询错误时出错了:缺少关键字我在下面的过程中使用了,但最终出现了错误,创建过程test\u col declare@VAR\u col\u DETAILS;开始选择组(按列名称排序)中的listagg(列名称,,')作为列名称,从所有选项卡列中选择@VAR_colu DETAILS,其中较低的(列名称)如“test%”执行IMMIDEATE“select”| VAR|col|DETAILS | from TABLE|name”;结束;您需要使用此查询作为游标或字符串输出。。那要看你了。错误消息是因为“test%”后缺少分号(;)。您使用的是mysql还是Oracle?我使用的是Oracle