Využil som množinový SQL operátor MINUS a UNION.
(SELECT * FROM PROGRAM_STATUS MINUS SELECT * FROM PROGRAM_STATUS_COPY) UNION (SELECT * FROM PROGRAM_STATUS_COPY MINUS SELECT * FROM PROGRAM_STATUS);
Vysvetlenie:
Máme dve tabuľky PROGRAM_STATUS a PROGRAM_STATUS_COPY.
Obidve tabuľky majú zhodnú štruktúru. Chcem zistiť, či majú rovnaký počet riadkov so rovnakým obsahom.
SQL príkaz sa skladá z viacerých príkazov. V prvom rade som spravil množinový rozdiel obsahu dvoch tabuliek A-B. Potom B-A. V zmene poradia je samozrejme z matematického hľadiska veľký rozdiel, preto je treba urobiť rozdiel oboma smermi. Nakoniec dva výsledky rozdielov množín sčítame množinovým operátorom UNION.
Ako iste vieme, množinový operátor UNION ukáže vo výsledku zoznam jedinečných riadkov, čo nám v tomto prípade postačuje. Pretože akonáhle nám príkaz ukáže čo len jeden riadok, je jasné, že obsah dvoch tabuliek nie je rovnaký a rovno aj vidíme rozdiel v čom.
S pozdravom.