【问题标题】:Looping for SQL select columns循环 SQL 选择列
【发布时间】:2015-07-03 05:45:45
【问题描述】:

假设我在表“test”中有诸如 test_1、test_2 等直到 test_40 的列,我想编写一个查询以从列 test_x 到 test_y 进行选择,其中 x

【问题讨论】:

  • 您可能不得不走动态 SQL 路线。为什么不在客户程序中选择您想要的?这听起来也很像一个非标准化的结构。创建一个单独的表,您可以从中选择此数据
  • 您使用什么 RDBMS?这听起来像是必须使用动态 sql 来完成,我不确定语法会如何(或是否)不同

标签: sql loops select plsql


【解决方案1】:

在 oracle 中使用ALL_TAB_COLUMNS 视图来构建select 查询。

Select column_name from ALL_TAB_COLUMNS where table_name = 'Test';

http://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_2094.htm

更新:

这里是动态构建Select 语句的代码。请换表'Test'

select  'Select ' || ename_list || ' From ' || table_name || ';' from 

(
Select  
       LISTAGG (
          column_name, ', '
       ) WITHIN GROUP (
          ORDER BY table_name
       ) AS ename_list  , table_name
from ALL_TAB_COLUMNS where table_name = 'Test'
Group by table_name
)  T;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-06
    • 2013-02-11
    • 1970-01-01
    • 2021-09-22
    • 1970-01-01
    • 2021-09-27
    • 2014-08-05
    • 2019-04-18
    相关资源
    最近更新 更多