数据比较有两个方面,一个是整体的比较,另外是细节上数据值的比较。
整体的比较可以使用Minus,显示两表之间的数据差:
select * from table_a minus select * from table_b
除此之外,还可以利用Minus比较不同列之间的差异:
select distinct columnA from table_A minus select distinct columnA from table_B
总的来说,Minus可以用来比较相对整体的东西
如果两张结构一样的表纯粹比较数据的数值上差异的话,可以使用如下SQL显示差异:
select A.primary_key, A.data1-B.data1, A.data2-B.data2 from table_A a, table_B b where A.primary_key = B.primary_key order by A.primary_key desc
这样只会显示所有的差异,我们可以在Where语句中加入过滤条件,显示指定差异的数据:
select A.primary_key, A.data1-B.data1, A.data2-B.data2 from table_A a, table_B b where A.primary_key = B.primary_key and abs(A.data1-B.data1)>0.001 order by A.primary_key desc
所以,测试的时候,我们需要一个准则去判断怎么样的数据差异是合理的