我在 Oracle 上有一个表 TABLE_A,它有多个以 X 开头的列。例如。Xxaa、xxyyy、aax 等。现在我想选择以 X 开头的字段。有没有使用通配符的方法?
问问题
932 次
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 回答