2015-10-13 66 views
-1

除去子串的一部分,我想通过在柱的开始更换图案加入2代表的第2列。加入基于条件,从列值

表1:

ABC_somename_ABC

something_XYZ

表2:

somename_ABC

somthing_XYZ

这里,我已经在在开始不更换ABC_部分结束和米马上加入。在第二种情况下,不应该取代,因为它亘古不变的有ABC_

我使用SUBSTR,INSTR功能去除,直到第一个下划线尝试。 SUBSTR(列,INSTR(列,“‘)+ 1),这将启动与任何下划线,但我想,只有当它与ABC或XYZ_

使用正则表达式REGEXP_SUBSTR(’ABC_somename_ABC”开始工作, '[^ ] +',1,2)正在取代双方。 我只有2中,得就像ABC去除起始模式,XYZ_ 可能有人帮助我在此。

+0

获得明确答案的一种方法是为您的结构和期望的输出提供一个[SQLfiddle](http://www.sqlfiddle.com/#!4)。 –

+0

感谢网站力德知道它至今日期 – waiting

回答

0

看起来你只是想加入该字符串的结尾:

on t1.col like '%' || t2.col 

如果你真的想测试“ABC_”开头:

on (t1.col like 'ABC\_%' and t1.col like '%' || t2.col) or 
    (t1.col not like 'ABC\_% and t1.col = t2.col) 

注:下划线('_')是like表达式的通配符,因此应该转义。

+0

为我工作谢谢 – waiting