Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Udowodnienie równoważności zapytań SQL

Najlepsze, co możesz zrobić, to porównać 2 wyniki zapytania na podstawie danego zestawu danych wejściowych, szukając jakichkolwiek różnic. Stwierdzenie, że zawsze zwrócą te same wyniki dla wszystkich danych wejściowych, naprawdę zależy od danych.

W przypadku Oracle jedno z lepszych, jeśli nie najlepsze podejść (bardzo wydajne) jest tutaj (Ctrl +F Porównanie zawartości dwóch tabel):
http://www.oracle.com/technetwork/issue-archive/2005/05-jan/o15asktom-084959.html

Co sprowadza się do:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak sprawdzić, czy plik jest obrazem przy użyciu PL/SQL?

  2. SQL:usuń wszystkie dane ze wszystkich dostępnych tabel

  3. Oracle Live SQL

  4. Dlaczego Oracle SQL nie pozwala nam używać aliasów kolumn w klauzulach GROUP BY?

  5. Odkryj typy pakietów PL/SQL, korzystając z widoków słownika Oracle