基于子字符串连接2个sql表

时间:2016-04-11 19:29:04

标签: sql sql-server join inner-join

我正在尝试连接只有两个匹配的密钥为table1.Accounttable2.key

的表格

但问题是设置。 table1.Account字段有10位数字,只有中间的4或5位数字与table2.key

匹配
eg : 1234xxxx10 - > table1.Account matches with xxxx -> table2.key

or   123xxxxx10 - > table1.Account matches with xxxxx -> table2.key

我已经编写了这条INNER JOIN代码,但查询一直在运行,并没有给我任何回复。

SELECT DISTINCT column1, column2
from table1 INNER JOIN table2 ON table1.Account like '%'+table2.key+'%'
order by column1

1 个答案:

答案 0 :(得分:1)

SQL有一个子字符串函数:

https://msdn.microsoft.com/en-us/library/ms187748.aspx

SELECT DISTINCT column1, column2
from table1 
INNER JOIN table2 
    ON table1.Account = substring(table2.key, 3, 4)
    OR table1.Account = substring(table2.key, 4, 4)
order by column1

我不知道你的on子句中是否需要'或',但根据你的问题,这些字段可能有两种匹配方式。无论如何,您可以根据需要修改on子句,但此示例应该可以帮助您使用语法,这似乎是您的障碍。