首页 > 解决方案 > 如何连接 2 个独立的表

问题描述

我正在使用 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

标签: sqloracle11g

解决方案


您可以使用joinwith 连接逻辑:

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);

推荐阅读