如果我有一个正确数据表,我需要检查我的实际表格,以确保数据是正确的,我有一些如下所示的行:
Data_Check_Table
FRUIT ------- PRICE ------- WEEKS_FRESH ------- SUPPLIER
Apple $1 1 Big Co.
Banana $1 1 Super Co.
以及包含此信息的实际表格:
Data_Table
FRUIT ------- PRICE ------- WEEKS_FRESH ------- SUPPLIER
Apple $2 1 Big Co.
Banana $1 1 Super Co.
...并假设还有很多其他行,有些匹配得很好,有些则在某些方面存在不一致(可能是错误的价格?或错误的供应商?可能两者都有。)我如何选择查找这些行哪些与实际数据不一致?
答案 0 :(得分:3)
Select dt.Fruit,dt.Price, dt.Weeks_Fresh,dtc.Fruit,dtc.Price, dtc.Weeks_Fresh,...
From DataTable dt
FULL OUTER JOIN
DataTable_Check dtc
ON dt.Fruit = dtc.Fruit
AND dt.Price = dtc.Price
.....
Where dt.Fruit IS NULL OR dtc.Fruit IS NULL
完整联接包括每个表中的记录,无论是否存在匹配,因此如果任何一方为空,则表示存在不匹配。
答案 1 :(得分:1)
以下查找与正确记录不匹配的实际记录:
select *
from Data_Table
minus
select *
from Data_Check_Table