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

时间:2012-08-15 09:04:43

标签: 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

ID2可以为空。

我的第二张表格如下:

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

如何使用以下条件内连接表?如果没有if语句,是否可以这样做?

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

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

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

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:-1)

使用查询

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