0

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

4

3 回答 3

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;
于 2012-08-24T11:27:43.570 回答
1

不,你不能那样做。您需要“手动”列出每一列。

(顺便说一句:这听起来像是一个非常奇怪的要求,它可能表明设计不佳-但这很难根据您提供的信息来判断)。

于 2012-08-24T11:13:31.320 回答
0

有点,但你必须在元表(syscolumns thingies)中使用它们,然后构建一个查询然后执行它。做一个更好的设计比那样脆弱的东西更容易。

于 2012-08-24T11:19:09.793 回答