SQL(Oracle)在列结果略有不同时加入

时间:2014-01-10 16:03:45

标签: sql oracle join

我需要在类似列上连接2个表,其中列之间的数据略有不同。一个例子:

表1

Key_ID
______

12345678
12345679
12345671
12345672

表2

Doc_Num
_______

Z12345678
Z12345679
Z12345671
Z12345672

这些是两个表之间唯一可关联的列。我需要加入它们才能返回表2中不同列的数据。例如,

SELECT DocTitle, DocDate
FROM Table2
RIGHT JOIN Table1
ON Table2.Doc_Num = Table1.Key_ID

所以我的主要问题是,当我试图加入的每个数据点前面有一个“Z”时,如何加入这两个表?

请原谅我的无知......

2 个答案:

答案 0 :(得分:2)

类似的东西:

select ...
from table1 t1
 right join table2 t2 on t1.key_id = to_number(substr(t2.doc_num,2));

答案 1 :(得分:1)

SELECT DocTitle, DocDate
FROM Table2
RIGHT JOIN Table1
ON Table2.Doc_Num = 'Z' || Table1.Key_ID

SELECT DocTitle, DocDate
FROM Table2
RIGHT JOIN Table1
ON substr(Table2.Doc_Num, 2) = Table1.Key_ID

两者都可以使用