1

あるテーブルの列値を別のテーブルの列値で検索する必要があります。

例えば

  MyTable
    Col1 Col2
    AAA   1
    BBB   2
    CCC   3

  MyTable2
    Col1          Col2
    GHKGH AAAh      1
    dhsjsBvd        2
    bdnd CCC b      3

MyTable2 の col1 値で MyTable から col1 値を検索する必要があります。

文字列をハードコーディングしたくありませんが、テーブルから値を取得します。

と を使用してみinstrましregex_instrたが、これらの関数ではパターン内の列の値を検索できません。

私はオラクル10gを使用しています。ティア

4

1 に答える 1

4

ここでテストされた例:http ://sqlfiddle.com/#!4 / 037ffe / 3

select 
  t1.col1 AS t1col1, t2.col1 AS t2col1
from 
  MyTable t1

  left join MyTable2 t2
  on t2.col1 like '%' || t1.col1 || '%'

DDLを含む完全な例:

CREATE TABLE MyTable (col1 varchar2(9));

INSERT ALL 
    INTO MyTable (col1)
         VALUES ('AAA')
    INTO MyTable (col1)
         VALUES ('BBB')
    INTO MyTable (col1)
         VALUES ('CCC')
SELECT * FROM dual;

CREATE TABLE MyTable2 (col1 varchar2(18));

INSERT ALL 
    INTO MyTable2 (col1)
         VALUES ('GHKGH AAAh')
    INTO MyTable2 (col1)
         VALUES ('dhsjsBvd')
    INTO MyTable2 (col1)
         VALUES ('bdnd CCC b')
SELECT * FROM dual;

select 
  t1.col1 AS t1col1, t2.col1 AS t2col1
from 
  MyTable t1

  left join MyTable2 t2
  on t2.col1 like '%' || t1.col1 || '%'

結果セット:

T1COL1 T2COL1
AAA GHKGH AAAh
BBB(null)
CCC bdnd CCC b
于 2013-02-20T22:06:14.040 に答える