mysql - 比较两个sql表并显示哪些列不同
问题描述
我已经有以下查询,它向我展示了两个表之间的区别,我需要找出哪些列不同,有什么办法吗
select * from [10.150.31.22].[database_a].[dbo].[table_a]
except
select * from [10.143.31.29].[database_b].[dbo].[table_b]
我需要这样的东西:
解决方案
尝试这个:
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);
推荐阅读
- android - 2020 年我应该使用 SyncAdapter 还是 AlarmManager 与服务器同步关键数据?
- spring - 当字段之一为空时,JPQL 不返回任何结果
- javascript - 如何确保一批请求已准备就绪
- php - 如何在不安全的协议上设置 instagram 基本显示中的 redirect_uri
- java - 当两个列表的大小不同时,从两个列表中添加具有相同索引的元素的值
- laravel - ErrorException 为 foreach() 提供的参数无效(查看:C:\xampp\htdocs\E-Commerce\resources\views
- android - 如果我在 ImageView 上滑动,我如何在 Android Kotlin 中检测到
- javascript - 触摸移动真的很慢
- sql - 将选择放在变量子查询中返回多个值
- html - jQuery - 点击元素