2017-10-04 4 views
0

私はtable1を持っているので、 'MYname_GKS_50'のような列からo/pを取得しています。 MYnameその結果の一部を、別のテーブルの別の列をフェッチする条件として使用したいだけです。 もし私がcolumnname = MYnameをtable2.xyzから与えたとします。これらの2つの問合せは、OracleDB内の単一のSQL問合せに存在する必要があります。 例:2番目のクエリで変更されて使用される最初のクエリ結果SQL

  • 表1(COL1、COL2)

    COL2私はデータ MYname_GKS_50、MYname_GKS_51、MYname_GKS_52、Ora_10、Ora_11 ...

をしたいたcol2の結果のみMYname_GKSおよびOraの検索条件には変更の必要はありません。

  • 表2(COL3、COL4)

COL2すなわちMYname_GKSオラからの値は表2のCOL3と比べて、今でなければなりません。 それが一致すれば、私にtable2のcol4を渡すべきです。

どのような提案gurus!ここでは同様

on t1.col2 like t2.col3||'%' 

+2

MS SQL ServerまたはOracleを使用していますか? – jarlh

+0

Oracle DBおよび列名を尋ねるOPに基づいて削除されたsql-server Ora_10 Ora_11 – scsimon

+0

使用されるデータベースはOracle 11gです。 Ora_10,11は単純に私が使った言葉ですが、それはOrder_detailsversionOne_100056、Order_detailsversionOne_100057、Order_detailsversionOne_100058のようなものでした。DonotはORAエラーと混同します。 – Gopal

答えて

0

あなたは条件加入でlikeを使用することができ

with table1 (col1, col2) as (
    select 1, 'MYname_GKS_50' from dual union all 
    select 2, 'MYname_GKS_51' from dual union all 
    select 3, 'MYname_GKS_52' from dual union all 
    select 4, 'Ora_10'  from dual union all 
    select 5, 'Ora_11'  from dual), 
table2 (col3, col4) as (
    select 'MYname_GKS', 'XYZ' from dual union all 
    select 'Ora',  'PQR' from dual) 
select * 
    from table1 t1 join table2 t2 on t1.col2 like t2.col3||'%' 

結果:

 COL1 COL2   COL3  COL4 
---------- ------------- ---------- ---- 
     1 MYname_GKS_50 MYname_GKS XYZ 
     2 MYname_GKS_51 MYname_GKS XYZ 
     3 MYname_GKS_52 MYname_GKS XYZ 
     4 Ora_10  Ora  PQR 
     5 Ora_11  Ora  PQR 

table2のはもっとして1個の一致する行が含まれているおそれがあります例えばMYnameおよびMYname_GKSおよび私はあなたがそのような状況で欲しいものを知らない。

+0

このクエリは動作している可能性があります。私が試してみましょう。私は各列の下に1000万のデータを持っていますが、うまくいけば私はその選択声明をすることができません。あなたの更新をありがとう。 – Gopal

+0

明らかではありません。要件を変更するコメントを書くのではなく、元の質問を編集して、簡略化された入力データを2つのテーブルに表示し、これらのデータと一致する必要な出力を表示します。 –

+0

私の究極の要件はCOL4データです。私はmyname_1、myname_2、old_1、old_2、old_3、get_4、get_5、look_2、look_99などでCOL2の下に100行あるとしましょう。他の表2では、COL3はデータのみのmyname、old、get、lookを有する。この列には数字はありません。私はそれが一致する場合COL3とCOL2各データの比較をしたい、私は取得するか、またはTABLe2のSQL COL4データを選択する必要があります。 ON状態はあなたに与えました、私は確認する必要があります。それはうまくいくだろう。私はmyname、old、get、lookなどのような100 200の異なる名前を言うことができます。だから私はあなたの選択した条件を使用することはできません。必須ではありません – Gopal

関連する問題