Sql 比较两个表,找出它们之间的差异
我有两张桌子:桌子A和桌子B 我需要比较两个表中的两个特定列(AnsId和Content),并得到它们的差异。 如果没有发现差异,则我应返回“流程成功”,否则返回“失败” 表aSql 比较两个表,找出它们之间的差异,sql,sql-server-2008,Sql,Sql Server 2008,我有两张桌子:桌子A和桌子B 我需要比较两个表中的两个特定列(AnsId和Content),并得到它们的差异。 如果没有发现差异,则我应返回“流程成功”,否则返回“失败” 表a +--------+-----------+---------+-------------+ | Id | RSCId | AnsId | Content | +--------+-----------+---------+-------------+ | 1 | 12
+--------+-----------+---------+-------------+
| Id | RSCId | AnsId | Content |
+--------+-----------+---------+-------------+
| 1 | 12 | 1 | Test data. |
| 2 | 12 | 0 | Sample Test.|
| 3 | 12 | 5 | Test data. |
| 4 | 12 | 7 | Test Data. |
| 5 | 12 | 46 | Test datas. |
+--------+-----------+---------+-------------+
表B
+--------+-----------+---------+-------------+
| Id | RSCId | AnsId | Content |
+--------+-----------+---------+-------------+
| 1 | 35 | 2 | Test . |
| 2 | 35 | 0 | Sample Test.|
| 3 | 35 | 5 | Test data. |
| 4 | 35 | 7 | Test Data. |
| 5 | 35 | 46 | Test datas. |
+--------+-----------+---------+-------------+
请帮助我。我尝试了您的查询。但我需要一个输出,说明“两个表不匹配”
select case when sum(case when a.ansid is null or b.ansid is null
then 1
end) > 0
then 'mismatch'
else 'ok'
end as result
from tableA a
full outer join tableB b on a.ansid = b.ansid and a.content = b.content