sql >> Database >  >> RDS >> Oracle

Gelijkwaardigheid van SQL-query's bewijzen

Het beste wat u kunt doen, is de 2 query-outputs vergelijken op basis van een bepaalde set inputs op zoek naar eventuele verschillen. Om te zeggen dat ze altijd dezelfde resultaten voor alle invoer zullen opleveren, hangt echt af van de gegevens.

Voor Oracle is een van de betere, zo niet de beste benaderingen (zeer efficiënt) hier (Ctrl +F De inhoud van twee tabellen vergelijken):
http://www.oracle.com/technetwork/issue-archive/2005/05-jan/o15asktom-084959.html

Wat neerkomt op:

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. Betere technieken voor het trimmen van voorloopnullen in SQL Server?

  2. SQL Server, de misleidende XLOCK &optimalisaties

  3. Hoe beperkingen voor externe sleutels in SQL Server-database voor alle tabellen te verwijderen - SQL Server / TSQL-zelfstudie, deel 72

  4. Trigger in SQL