Sql server 2008 如何从第一个表中提取匹配的数据,从第二个表中提取不匹配的数据
我有两张结构相同的桌子 例如,表A和表B中有id列、值列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匹
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