sql >> Database teknologi >  >> RDS >> Oracle

Beviser SQL-forespørgselsækvivalens

Det bedste, du kan gøre, er at sammenligne de 2 forespørgselsudgange baseret på et givet sæt input, der leder efter eventuelle forskelle. At sige, at de altid vil returnere de samme resultater for alle input, afhænger virkelig af dataene.

For Oracle er en af ​​de bedre, hvis ikke bedste tilgange (meget effektiv) her (Ctrl +F Sammenligning af indholdet af to tabeller):
http://www.oracle.com/technetwork/issue-archive/2005/05-jan/o15asktom-084959.html

Hvilket koger ned til:

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. Sådan oprettes forbindelse til SQL Server med Windows-godkendelse fra Node.JS ved hjælp af mssql-modul

  2. Brug af Microsoft DiskSpd til at teste dit lagerundersystem

  3. Brug af IS NULL eller IS NOT NULL på joinbetingelser - Teorispørgsmål

  4. SQL Server trunkerer lydløst varchar'er i lagrede procedurer