通过Python比较SQL中的数据

时间:2009-06-01 09:27:51

标签: python sql

我必须解析一个非常复杂的转储(无论它是什么)。我已经通过Python完成了解析。由于解析的数据量非常大,我必须在数据库中提供它(SQL)。我也这样做了。现在问题是我必须比较SQL中现在存在的数据。

实际上我必须将第一次转储的数据与第二次转储的数据进行比较。两个转储都具有相同的字段(属性),但它们的字段值可能不同。所以我必须发现这种变化。为此,我必须进行比较。但我不知道如何使用Python作为我的前端。

2 个答案:

答案 0 :(得分:1)

如果您没有MINUSEXCEPT,还会出现此问题,它会使用UNION / GROUP BY技巧显示所有不匹配的行

SELECT MAX(table), data1, data2
FROM (
    SELECT 'foo1' AS table, foo1.data1, foo1.data2 FROM foo1
    UNION ALL
    SELECT 'foo2' AS table, foo2.data1, foo2.data2 FROM foo2
) AS X
GROUP BY data1, data2
HAVING COUNT(*) = 1
ORDER BY data1, data2

我有一个通用表比较SP,它也可以做一个比较复杂的表与左右内连接和货币阈值(或阈值百分比)和子集标准。

答案 1 :(得分:0)

为什么不在SQL中执行'检测更改'?类似的东西:

select foo.data1, foo.data2 from foo where foo.id = 'dump1'
minus
select foo.data1, foo.data2 from foo where foo.id = 'dump2'