4

我在映射表中有以下数据:

ID1         LOCALID         ID2
Local_-1    BankA_7-9       Local_2647
Local_0     Bank_7-9        Local_2647
Local_2624  BGROMF          NULL
Local_2619  BIS             NULL

ID2 可以为空。

我的第二张桌子看起来像:

ID1        ID2
Local_-1   Local_2674 
Local_0    Local_2674
Local_2624 Local_2674
Local_2619 Local_2674

如何内部连接具有以下条件的表?是否可以在没有 if 语句的情况下执行此操作?

如果映射表中的 ID2 为空,则在 ID1 上加入,否则在 ID1 和 ID2 上加入。

我的出发点(显然会排除空值)是:

SELECT * FROM 
    #Table2 C
     INNER JOIN Mapping F 
                  ON C.ID1 = F.ID1 AND
                  C.ID2 = F.ID2
4

2 回答 2

6
SELECT * FROM  
    #Table2 C 
     INNER JOIN Mapping F  
                  ON C.ID1 = F.ID1 AND 
                  C.ID2 = ISNULL(F.ID2, C.ID2)
于 2012-08-15T09:07:24.413 回答
-1

使用查询

SELECT * FROM 
    #Table2 C
     INNER JOIN Mapping F 
       ON C.ID1 = F.ID1 AND
       C.ID2 = F.ID2ffgffgf
于 2014-06-13T12:01:34.093 回答