SQL内部在可能的情况下加入2个条件

wog*_*les 4 sql sql-server-2008

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

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
Run Code Online (Sandbox Code Playgroud)

ID2可以为空.

我的第二张表看起来像:

ID1        ID2
Local_-1   Local_2674 
Local_0    Local_2674
Local_2624 Local_2674
Local_2619 Local_2674
Run Code Online (Sandbox Code Playgroud)

如何使用以下条件内连接表?没有if语句可以做到这一点吗?

如果映射表中的ID2为null,则只需加入ID1,否则加入ID1和ID2.

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

SELECT * FROM 
    #Table2 C
     INNER JOIN Mapping F 
                  ON C.ID1 = F.ID1 AND
                  C.ID2 = F.ID2
Run Code Online (Sandbox Code Playgroud)

pod*_*ska 6

SELECT * FROM  
    #Table2 C 
     INNER JOIN Mapping F  
                  ON C.ID1 = F.ID1 AND 
                  C.ID2 = ISNULL(F.ID2, C.ID2)
Run Code Online (Sandbox Code Playgroud)