首页 > 解决方案 > 如何从两个表中选择具有不同值的列?

问题描述

我有两个具有相同列的表,例如表 A 和表 B

表 A:

Name  Address   Phone
A     Add1      123

表 B:

Name  Address   Phone
A     Add1      12345

我只想选择具有不同值的列

预期输出:

Phone
123
1234

标签: sql-server

解决方案


SELECT Phones.Phone
FROM A
INNER JOIN b ON A.Name = B.Name AND A.Addr = B.Addr AND A.Phone <> B.Phone
CROSS APPLY (
  SELECT Phone = A.Phone
  UNION ALL
  SELECT Phone = B.Phone
) AS Phones

推荐阅读