左联接,但保留值,其中NULL可能导致Microsoft SQL

时间:2018-08-30 15:06:49

标签: sql sql-server

我有两个表:

表A:

id names
1   a
2   b
3   c

和表B:

id names
1   x
2   y

我想在表A上执行表B的左连接,从而产生下表:

id names
1   x
2   y
3   c

如何在Microsoft SQL中执行此操作?

2 个答案:

答案 0 :(得分:8)

您可以使用COALESCE

SELECT a.id, COALESCE(b.name, a.name) AS name
FROM tab1 a
LEFT JOIN tab2 b 
  ON a.id = b.id

答案 1 :(得分:5)

我认为您只想要coalesce()

select a.id, coalesce(b.name, a.name) as name
from a left join
     b
     on a.id = b.id;