如何在sql server中连接多个列

时间:2015-01-27 22:47:51

标签: sql sql-server sql-server-2008 tsql sql-server-2012

我有一个名为hierarchyylevel和Resourcelvel的表,数据如下所示:

HierarchyLevel

NTLogin    PreferredName   NTLevel1    NTLevel2    NTLevel3  NTLevel4   NTLevel5
Sam_peter  Peter, Sam      Geroge_Sam  Tom_Grifith James_P   Scott_Olsz Todd_L
Temuzin_P  P,Temuzin       George_Sam  Tom_Grifith James_P   Scott_Olsz Todd_L

ResourceLevel

IndusName    NTLogin     PreferredName
HCMR         James_P     P, James
TTBS         Scott_Olsz  Olsz, Scott
DAOP         George_Sam  Sam, George
BFSI         Prat_Matt   Matt, Prat

现在我想得到来自Resourcelevel的Ntlogin在HierarchyLevel中的任何一个级别匹配的Indusname。

例如,输出应如下面的上述样本数据:

IndusName        NTLogin     
 HCMR            James_P     
 TTBS            Scott_Olsz  
 DAOP            George_Sam

1 个答案:

答案 0 :(得分:3)

SELECT r.IndusName, r.NTLogin
FROM ResourceLevel r
INNER JOIN HierarchyLevel h
ON r.NTLogin IN (h.NTLevel1, h.NTLevel2, h.NTLevel3, h.NTLevel4, h.NTLevel5)

ON r.NTLogin = h.NTLevel1 OR r.NTLogin = h.NTLevel2 OR r.NTLogin = h.NTLevel3 OR r.NTLogin = h.NTLevel4 OR r.NTLogin = h.NTLevel5

您可以使用任何逻辑条件来连接两个表。