我正在使用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
答案 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);