Comparer deux requêtes aux résultats identiques

Comment savoir si deux requêtes donnent le même résultat ?

Il suffit d’une simple équation ensembliste pour ce faire. Sachant que la requête 1 donne comme résultat l’ensemble A et que la requête 2 donne comme résultat l’ensemble B, prouver que ces deux requêtes donnent le même résultat, nécessite d’appliquer l’équation :

A – B U B – A = Ø

Autrement dit que l’union de la soustraction des éléments de B à l’ensemble A et de la soustraction des éléments de A à l’ensemble B ne donne aucun résultat (ensemble vide).

Ceci s’exprime en SQL de la sorte :

WITH
TA AS (SELECT ....), -- requête 1
TB AS (SELECT ....)  -- requête 2
SELECT * FROM TA
EXCEPT
SELECT * FROM TB
UNION ALL
SELECT * FROM TB
EXCEPT
SELECT * FROM TA;

Ne donne aucun résultat… CQFD

PS : pour oracle utilisez MINUS au lieu de EXCEPT….

Frédéric Brouard, alias SQLpro, ARCHITECTE DE DONNÉES
Expert  S.G.B.D  relationnelles   et   langage  S.Q.L
Moste  Valuable  Professionnal  Microsoft  SQL Server
Société SQLspot  :  modélisation, conseil, formation,
optimisation,  audit,  tuning,  administration  SGBDR
Enseignant: CNAM PACA, ISEN Toulon, CESI Aix en Prov.

L’entreprise SQL Spot
Le site web sur le SQL et les SGBDR

MVP Microsoft SQL
Server

Laisser un commentaire