使用通配符从Oracle上的单个表中选择多个列

时间:2012-08-24 11:11:14

标签: sql oracle oracle11g

我在Oracle上有一个表TABLE_A,它有多个以X开头的列。 Xxaa,xxyyy,aax等现在我想选择以X开头的字段。有没有办法使用通配符?

3 个答案:

答案 0 :(得分:3)

您可以通过动态SQL构建查询,然后根据需要运行它:

declare
  SQL_QUERY   varchar2(4000);
begin
  select    'select '
         || LISTAGG(CNAME, ',') within group (order by CNAME)
         || ' from table_a'
    into SQL_QUERY
    from COL
   where TNAME = 'TABLE_A' and CNAME like 'X%';

  dbms_output.PUT_LINE(SQL_QUERY);
end;

答案 1 :(得分:1)

不,你不能这样做。您需要列出每一列"手动"。

(顺便说一下:这听起来像是一个非常奇怪的要求而可能表示设计不佳 - 但这很难说明你提供的信息。)

答案 2 :(得分:0)

排序,但您必须在元表(syscolumns thingies)中使用它们,然后构建查询然后执行它。 比那些脆弱的东西更容易做出更好的设计。