OracleにテーブルTABLE_Aがあり、Xで始まる複数の列があります。Xxaa、xxyyy、aaxなど。次に、Xで始まるフィールドを選択します。ワイルドカードを使用する方法はありますか?
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 のもの) でそれらを使用し、クエリを作成して実行する必要があります。そのような壊れやすいものよりも、より良い設計を行う方が簡単です。
于 2012-08-24T11:19:09.793 に答える