SQL EXISTS



SQL > SQL Avancé > Exists 

Dans la section précédente, nous avons utilisé IN pour mettre en liaison la requête interne et la requête externe dans une instruction de sous-requête. L’utilisation de IN n’est pas la seule manière de procéder ; il est aussi possible d’utiliser plusieurs opérateurs tels que >, <, ou =. EXISTS est un opérateur spécial que nous verrons dans cette section.

EXISTS teste simplement si la requête interne retourne une ligne. Si elle le fait, la requête externe peut s’exécuter. Sinon, la requête externe ne s’exécutera pas, et l’instruction SQL entière ne retournera aucun résultat.

La syntaxe pour EXISTS est :

SELECT "nom de colonne 1"
FROM "nom de table 1"
WHERE EXISTS
(SELECT *
FROM "nom de table 2"
WHERE "condition");

Notez qu’au lieu de l’étoile *, vous pouvez sélectionner une ou plusieurs colonnes dans la requête interne. L’effet sera identique.

Utilisons les mêmes tables comme exemple :

Table Store_Information
Store_NameSalesTxn_Date
Los Angeles150005-Jan-1999
San Diego25007-Jan-1999
Los Angeles30008-Jan-1999
Boston70008-Jan-1999

Table Geography
Region_Name Store_Name
East Boston
East New York
West Los Angeles
West San Diego

définissons la requête SQL suivante :

SELECT SUM(Sales) FROM Store_Information
WHERE EXISTS
(SELECT * FROM Geography
WHERE Region_Name = 'West');

Le résultat obtenu sera le suivant :

SUM(Sales)
2750

A première vue, cette opération peut paraître un peu confuse, car la sous-requête inclut la condition [Region_Name = 'West'], la requête n’a pas encore ajouté les magasins pour toutes les régions. Par une analyse plus approfondie, nous parvenons à la condition suivante : puisque la sous-requête retourne plus de 0 ligne, la condition EXISTS est vraie, et la condition placée au sein de la requête interne n’affecte pas le mode d’exécution de la requête externe.

SQL CASE >>



Copyright © 2014   1keydata.com   Tous droits réservés


SQL Avancé
SQL UNION
SQL UNION ALL
SQL INTERSECT
SQL MINUS
SQL Sous-requête
SQL EXISTS
SQL CASE
SQL Rang
SQL Médiane
SQL Exécution totale
SQL Pourcentage du total
SQL Pourcentage du total cumulatif




Plan du site