2013-02-20 97 views
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值。

我不想硬编码字符串,但从表中取值。

使用instrregex_instr尝试,但这些函数不允许在模式中的列值进行搜索。

我使用的是oracle 10g。 TIA

回答

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 
+0

的伟大工程...感谢 – Stu 2013-02-20 22:20:18

+0

你最受欢迎的。 – bernie 2013-02-20 22:21:22

相关问题