当前位置: 首页 > 面试题库 >

证明SQL查询的等效性

刘选
2023-03-14
问题内容

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

由于在执行此操作时会想到一个特定的查询,因此最终按照@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代码如下: 等效的linq表达式是什么? 问题答案: 我第一次尝试在 来源 LINQ to SQL中的NOT IN子句

  • 问题内容: 在django中,此SQL语句的等效项是什么? 如何在Django中实现呢?我试过了 但这是行不通的。我该如何执行呢? 问题答案: 使用或(不区分大小写): SQL等效为

  • 问题内容: 您是否可以在ElasticSearch中逻辑上嵌套查询,所以一个查询的输出就是另一个查询的输入。另一种询问方式是如何将查询链接或管道连接在一起? 这应该类似于SQL中的IN运算符或子查询 即:-选择au_lname,au_fname,标题(从pubs.dbo.authors中选择au_lname,au_fname,au_id,其中state =’CA’)或 从AdventureWork

  • 问题内容: 我想知道使用INNER JOIN -clause的SQL查询的django等效项。我有两个与ForeignKey链接的模型。 我想从“表”中将“ item_is_locked”值设置为false的请求表中获取字段 如果使用SQL查询,我将使用以下代码: 问题答案: 您可以使用和获得所需的结果。 尝试:

  • 问题内容: 不知道为什么将其链接为骗子。 问题是不同的。答案是不同的。不知道要更改什么。如果有人看到我想念的东西,请告诉我… 使用这两个查询,我得到的结果数量不同。在分析了几个小时之后,我需要扔掉毛巾,承认我无法发现重要性的差异。由于我的方法库已空荡荡,因此我需要帮助。 LINQ SQL 第一个问题是上述两个陈述是否确实相等,或者我是否缺少某些内容。第二个问题是我所缺少的(如果有的话)或如何解决它