gpt4 book ai didi

sql - 证明SQL查询等效

转载 作者:行者123 更新时间:2023-12-03 11:38:03 24 4
gpt4 key购买 nike

您将如何证明两个查询在功能上是等效的,例如它们将始终都返回相同的结果集。

由于在执行此操作时会想到一个特定的查询,因此最终按照@dougman的建议进行操作,在有关表的大约10%的行中进行比较并比较结果,以确保没有不合适的结果。

最佳答案

最好的办法是根据给定的一组输入比较两个查询输出,以查找任何差异。要说它们对于所有输入将始终返回相同的结果,实际上取决于数据。

对于Oracle,最好的方法之一(如果不是最好的话)(非常有效)在此处(Ctrl + F比较两个表的内容):
http://www.oracle.com/technetwork/issue-archive/2005/05-jan/o15asktom-084959.html

归结为:

select c1,c2,c3, 
count(src1) CNT1,
count(src2) CNT2
from (select a.*,
1 src1,
to_number(null) src2
from a
union all
select b.*,
to_number(null) src1,
2 src2
from b
)
group by c1,c2,c3
having count(src1) <> count(src2);

关于sql - 证明SQL查询等效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56895/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com