我们可以使用len()根据长度连接表

时间:2016-10-01 02:31:09

标签: sql sql-server-2008 join

我有2张桌子

表A

nameA   
---------       
1234A   
1235A   

表B

nameB   
----------  
1234        
1235    

我想用1235加入1235A,我的预期输出是

nameA   nameB          
1234A   1234        
1235A   1235          

我们可以使用名称列

的len()加入表

3 个答案:

答案 0 :(得分:1)

您可以尝试这一点 - 它将两侧的名称与较小名称的长度匹配。如果substring的长度参数大于输入字符串的长度,则返回原始字符串。

select * from
TableA A inner join TableB B
on SUBSTRING( A.NameA, 1, len(B.NameB) ) = SUBSTRING( B.NameB, 1, len(A.NameA) )

答案 1 :(得分:0)

Select * from
TableA a join TableB b on
Left (a.nameA,4)= b.nameB

试试上面的代码。

答案 2 :(得分:0)

你可以这样做:

select a.name, b.name
from a join
     b
     on a.name like b.name + '%';

这个问题与您原来的问题有很大不同。如果您有其他问题,请不要修改此问题。把它作为一个新问题。