OUTER JOIN两个表

时间:2017-06-16 17:07:08

标签: sql sql-server

如何不仅显示两个表(表A和表B)中的重叠ID,还显示两个表中的唯一ID? 以下是示例代码:

SELECT A.ID AS ID
FROM A
FULL OUTER JOIN B ON A.ID = B.ID

我认为我可以对SELECT行做些什么,但我不知道如何。

1 个答案:

答案 0 :(得分:2)

coalesce()返回一组参数中的第一个非null值。那是你在找什么?

rextester演示:http://rextester.com/QYAZV8300

create table a (id int) 
insert into a values (1),(3),(5)
create table b (id int) 
insert into b values (2),(3),(4)

select 
    a.id as A_Id
  , b.id as B_Id
  , coalesce(a.id,b.id) as Id
from a
  full join b
    on a.id = b.id

返回:

+------+------+----+
| A_Id | B_Id | Id |
+------+------+----+
| 1    | NULL |  1 |
| 3    | 3    |  3 |
| 5    | NULL |  5 |
| NULL | 2    |  2 |
| NULL | 4    |  4 |
+------+------+----+