2017-09-19 54 views
0

好日子MS SQL加入'table通过

前6个字符我有两个表

Table1 
Column1 Column2  
BoB  48J124BGAS11 
Eva  V54318KFSGH5 
John  465K33SH4674 
Alex  7I7980HSH474 

Table2 
Column1 Column2  
Apple 48J124 
Samsung V54318 
Google 465K33 
Android 348B00 
Nokia 7I7980 
Alcatel 158360 

我需要通过firts 6个字符从列2的右侧加入他们的行列。期待的结果就是这样。

Table3 
Column1 Column2  Column3 
BoB  48J124BGAS11 Apple 
Eva  V54318KFSGH5 Samsung 
John  465K33SH4674 Google 
Alex  7I7980HSH474 7I7980 

荫不知道如果我需要从列2的右侧前6个字符创建table1中柱外,然后进行加入或我可以创建直接加入。

感谢您的意见。

+0

没有,一般不需要。 – Serg

回答

2

不,您不需要创建另一列。以下是如何加入这些表的方法:

SELECT A.Column1, A.Column2, B.Coulmn1 FROM Table1 AS A 
JOIN Table2 AS B ON B.Coulmn2 = LEFT(A.Column2, 6) 
0

Table2在Column2中总是有6个字符?

它可以使用LEFT函数来限制加入到要在加入到使用的特定字符,像这样:

SELECT 
* 
FROM Table1 T1 
INNER JOIN TABLE2 T2 ON LEFT(T1.Column2,6) = LEFT(T2.Column2, 6) 

内加入将得到退出这两个表中的结果,只需改变select *即可获取所需的列。

我把LEFT垫在这两个条件中加入的原因是因为我不知道表的结构限制