Sql server 2008 如何从第一个表中提取匹配的数据,从第二个表中提取不匹配的数据

Sql server 2008 如何从第一个表中提取匹配的数据,从第二个表中提取不匹配的数据,sql-server-2008,Sql Server 2008,我有两张结构相同的桌子 例如,表A和表B中有id列、值列 Table A ID VALUE 1 10 2 20 3 0 Table B ID VALUE 1 24 2 26 3 0 4 40 5 50 expected output: ID VALUE 1 10 2 20 3 0 4 40 5 50 根据输出,前三个id与表B匹

我有两张结构相同的桌子 例如,表A和表B中有id列、值列

Table A

ID    VALUE
1      10
2      20
3      0


Table B

ID    VALUE
1      24
2      26
3      0
4      40
5      50

    expected output:

ID    VALUE
1      10
2      20
3      0
4      40
5      50

根据输出,前三个id与表B匹配,因此带值的id(1,2,3)来自表A,带值的id(4,5)不匹配,因此来自表B。

您可以在表B上使用
右连接
(或在表A上使用
左连接
),并使用
合并
运算符

select b.id, coalesce(a.value, b.value)
from tablea a
right join tableb b on a.id = b.id

select b.id, coalesce(a.value, b.value)
from tableb b
left join tablea a on a.id = b.id