我在Oracle上有一个表TABLE_A,它有多个以X开头的列。 Xxaa,xxyyy,aax等现在我想选择以X开头的字段。有没有办法使用通配符?
答案 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)中使用它们,然后构建查询然后执行它。 比那些脆弱的东西更容易做出更好的设计。