我有两个表-
表T1 具有以下数据-
COL1 COL2
1 A,B,C
表T2 具有以下数据-
COL3 COL4
A 10
B 20
C 30
D 40
我想要的输出是-
COL1 COL3 COL4
1 A 10
1 B 20
1 C 30
T1和T2大约有百万行。
我已经尝试了以下方法:
select T1.COL1,T2.COL3,T2.COL4
from T1
inner join T2 on T1.COL2 LIKE '%' || T2.COL3 || '%';
select T1.COL1,T2.COL3,T2.COL4
from T1
inner join T2 on instr(T1.COL2, T2.COL3 )>0;
select T1.COL1,T2.COL3,T2.COL4
from T1
inner join T2 on T1.COL2 LIKE_REGEXPR T2.COL3;
所有这三个语句都可以与TEST数据配合使用。但是在实际数据上运行时会导致内存分配错误。
有没有一种更好的方法?