如何将一列(在一个表中)的子字符串与另一列(在另一表中)的完整值连接在一起

时间:2018-09-19 20:32:51

标签: sql oracle

所以我目前有一个包含以下列和条目的表:

ROW_ID        CODE           VAL
  1            US             50
  2            CAN            15
  3            MEX            12

我还有另一列包含以下列和条目:

ROW_ID       CODE_METADATA         REGION
  1           US|451223123           8
  2          CAN|123123123           7
  3          MEX|41028               3

我如何能够分别联接CODE和CODE_METADATA列上的两个表?我已经尝试了以下方法,但是没有用:

select t2.nvl(substr(code_metadata, 0, instr(code_metadata, '|')-1), code_metadata) as CODE
 from table1 t1
 join table2 t2 on t1.code = t2.CODE;

谢谢!

2 个答案:

答案 0 :(得分:2)

您可能会加入以下条件:

substr(t2.CODE_METADATA,1,instr(t2.CODE_METADATA,'|')-1) = t1.CODE

答案 1 :(得分:1)

您也可以使用LIKE加入:

t2.CODE_METADATA LIKE t1.CODE || '|%'