如何加入2个独立的桌子

时间:2019-07-15 17:00:56

标签: sql oracle11g

我正在使用SQL,有2个独立的表 .1表一提供了代码,id的数据类似于

Code    ID
AUD     WH1
CND     WH1

.2表对这些代码有很长的描述,类似于

colval            Description

AUD|WH1         Australia records
CND|WH1         Canada records

“ colval”列是用分隔符“ |”连接的“ code”和“ id”列#table 1.如何连接这些表以获得类似

的结果
Code      Description
AUD      Australia records
CND      Canada records

1 个答案:

答案 0 :(得分:1)

您可以将join与串联逻辑一起使用:

select t1.*, t2.description
from table1 t1 join
     table2 t2
     on t2.colv = t1.code || '|' || t1.id;

在SQL Server中:

select t1.*, t2.description
from table1 t1 join
     table2 t2
     on t2.colv = concat(t1.code, '|', t1.id);

不幸的是,Oracle支持CONCAT(),但只有两个参数。因此,对于在两个数据库上均可使用的代码:

select t1.*, t2.description
from table1 t1 join
     table2 t2
     on t2.colv = concat(concat(t1.code, '|'), t1.id);