如:有两个表tbl_1,tbl_2,在两表连接时,以tbl_1中的字段msg 和 tbl_2中的字段msg作为链接条件,在Oracle 9i 中,用如下语句:select * from tbl_1 left join tbl_2 on inStr(tbl_1.msg, tbl_2.msg) > 0;没有问题。但,在oracle 8i 里使用left jion 时,发现不支持请问如何在8i解决此问题,而又不降低查询效率,不胜感激。
(注:tbl_1 中的msg字段的值是 'abc' 或‘abc,bcd,edf'这样的字符串,字符串之间可能有逗号隔 开。 而tbl_2中的msg 值 是'abc' 或'bcd' 或 'edf'这样的字符串,字符串之间无逗号隔开。)
(注:tbl_1 中的msg字段的值是 'abc' 或‘abc,bcd,edf'这样的字符串,字符串之间可能有逗号隔 开。 而tbl_2中的msg 值 是'abc' 或'bcd' 或 'edf'这样的字符串,字符串之间无逗号隔开。)
from tbl_1, tbl_2
where instr (tbl_1.msg, tbl_2.msg) > 0;
from tbl_1, tbl_2
where instr (','||tbl_1.msg||',', ','||tbl_2.msg||',') > 0;
select *
from tbl_1, tbl_2
where instr (','||tbl_1.msg||',', ','||tbl_2.msg||',') > 0;这个对.
from tbl_1, tbl_2
where instr (','||tbl_1.msg||',', ','||tbl_2.msg||',') > 0;多此一举了,而且依然奇慢无比。
from tbl_1, tbl_2
where instr (tbl_1.msg, tbl_2.msg) > 0;
这样的查询效率很慢。
select * from tabl,tab2
where tabl.msg = tab2.msg(+);
select * from tabl,tab2
where tabl.msg = tab2.msg(+);