【问题标题】:Inner join on ConCat fieldsConCat 字段的内连接
【发布时间】:2018-07-12 07:50:32
【问题描述】:

我有桌子 A

Code  Range
A     12569 
B     18175
C     478931

和表 B

id      Type 
A12569  0
B18175  1
C478931 0 

如何连接第一个表的两个字段,以便将它们与第二个表连接。

我尝试过以下查询

SELECT concat(A.code,B.Range),b.Type FROM DB.tableA A
inner join DB.tableB B 
on Concat(A.code,B.Range)= B.id;

【问题讨论】:

标签: sql


【解决方案1】:

只需连接两列:

select *
from table_a a 
  join table_b b on a.code||range = b.id;

以上是标准 SQL - 并非所有 DBMS 都尊重这一点,并使用不同的运算符来连接字符串。

【讨论】:

    【解决方案2】:

    SQL 服务器:

    Select a.Code+b.Range as id, b.Type from TableA a inner join tableB b on a.Code + b.Range = b.id
    

    未经测试但应该可以工作 - 假设所有列都是 varchar 或 nvarchar。如果不是这种情况,可能需要在范围字段上添加一些强制转换。

    【讨论】:

      猜你喜欢
      • 2016-01-08
      • 2010-09-26
      • 2020-03-23
      • 2019-09-06
      • 1970-01-01
      • 2012-04-02
      • 1970-01-01
      • 2010-09-08
      • 2022-01-18
      相关资源
      最近更新 更多