sql >> Databasteknik >  >> RDS >> Oracle

Bevisa SQL-fråga likvärdighet

Det bästa du kan göra är att jämföra de två frågeutgångarna baserat på en given uppsättning indata och leta efter eventuella skillnader. Att säga att de alltid kommer att ge samma resultat för alla indata beror verkligen på data.

För Oracle är en av de bättre om inte bästa metoderna (mycket effektiv) här (Ctrl +F Jämföra innehållet i två tabeller):
http://www.oracle.com/technetwork/issue-archive/2005/05-jan/o15asktom-084959.html

Vilket kokar ner till:

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);


  1. CriteriaQuery månad och år filter

  2. RPAD() Funktion i PostgreSQL

  3. Distribuera ett certifikat för krypterad anslutning SQL Server

  4. Ge tabellnivåbehörigheter i SQL Server