首页 > 解决方案 > 比较两个sql表并显示哪些列不同

问题描述

我已经有以下查询,它向我展示了两个表之间的区别,我需要找出哪些列不同,有什么办法吗

select * from [10.150.31.22].[database_a].[dbo].[table_a]
except
select * from [10.143.31.29].[database_b].[dbo].[table_b]

我需要这样的东西:

在此处输入图像描述

标签: mysqlsqlexcept

解决方案


尝试这个:

SELECT A.Id, COALESCE(A.Name,-1), COALESCE(A.Age,-1), COALESCE(B.Name,-1), COALESCE(B.Age,-1)
FROM [10.150.31.22].[database_a].[dbo].[table_a] AS A
LEFT OUTER JOIN [10.143.31.29].[database_b].[dbo].[table_b] AS B
ON A.Id = B.Id
WHERE COALESCE(A.Name,-1) <> COALESCE(A.Age,-1) OR COALESCE(B.Name,-1) <> COALESCE(B.Age,-1);

推荐阅读