2017-01-25 14 views
-2

私の質問は、 "OR"関係にある3つの異なる基準に基づいて特定のテーブルだけでなく、データベース全体からすべての列を一覧表示することです。たとえば、私は "銀行"と呼ばれるデータベースを持っています。私は3つの基準 "Criteria1; Criteria2; Criteria3"を持っています。もしそれらのいずれかが真実であれば、それらの間の関係はORでなければなりません。同じテーブルから "account_id"または "customer_id"を提供する必要があります。データベース全体で複数のレコードを検索する方法

この場合、私はどのように処理しますか?

+0

ようこそ。ここでは[質問]と質問を改善するのに役立つ[mcve]の構築方法について説明します – Aleksej

答えて

0

可能ですが、やりたくないかもしれません。

あなたは、テーブル名や、あなたの基準を追加クエリを実行することができ、テーブルを考えると
select distinct table_name from user_tab_cols utc 
    where exists (select * from user_tab_cols where table_name = utc.table_name 
     and column_name = 'ACCOUNT_ID') 
     and exists (select * from user_tab_cols where table_name = utc.table_name 
     and column_name = 'CUSTOMER_ID'); 

execute immediate 'select account_id, customer_id from agreement where ' 
    || your_criteria_here; 

とにかく、あなたが望むの列が含まれているすべてのテーブルを見つけたストアドプロシージャを記述することができ少し厄介で、非効率的で、これを擬似コードとして扱う。しかし、実際にad-hoqクエリでこれを行うには、正しい方向を指す必要があります。

関連する問題