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)
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)