Résumé: dans ce tutoriel, vous apprendrez comment utiliser l’opérateur SQL Server EXISTS
dans la condition de tester l’existence de lignes dans une sous-requête.
Aperçu de l’opérateur SQL Server EXISTS
L’opérateurEXISTS
est un opérateur logique qui vous permet de vérifier si une sous-requête renvoie n’importe quelle ligne. La balise EXISTS
opérateur renvoie TRUE
si la sous-requête renvoie une ou plusieurs lignes.,
l’exemple suivant illustre La syntaxe de SQL Server EXISTS
opérateur:
Code language: SQL (Structured Query Language) (sql)
Dans cette syntaxe, la sous-requête est une SELECT
seule déclaration. Dès que la sous-requête renvoie des lignes, l’opérateurEXISTS
renvoieTRUE
et arrête immédiatement le traitement.
Notez que, même si la sous-requête renvoie un NULL
valeur, la balise EXISTS
opérateur est toujours évalué à TRUE
.,
SQL Server EXISTE exemples d’opérateurs
Prenons quelques exemples pour comprendre comment fonctionne l’opérateurEXISTS
.
A) L’utilisation d’EXISTS avec une sous-requête renvoie un exemple NULL
Voir la tablecustomers
de l’exemple de base de données.,
L’exemple suivant renvoie toutes les lignes à partir de la balise customers
table:
Dans cet exemple, la sous-requête a renvoyé un résultat qui contient NULL
ce qui provoque la balise EXISTS
opérateur d’évaluer la TRUE
. Par conséquent, la requête entière renvoie toutes les lignes de la table customers
.,
B) à l’Aide EXISTE, avec une sous-requête corrélée exemple
de Considérer les éléments suivants: customers
et orders
tables:
L’exemple suivant renvoie tous les clients qui ont passé plus de deux ordres:
Dans cet exemple, nous avons eu une sous-requête corrélée qui renvoie les clients de plus de deux ordres.,
Si le nombre de commandes passées par le client est inférieur ou égal à deux, la sous-requête renvoie un jeu de résultats vide qui provoque la balise EXISTS
opérateur d’évaluer la FALSE
.
En fonction du résultat de l’opérateurEXISTS
, le client sera inclus dans le jeu de résultats.
C) EXISTE vs., DANS l’exemple
L’instruction suivante utilise la balise IN
opérateur de trouver les commandes des clients à partir de San Jose:
L’instruction suivante utilise la balise EXISTS
opérateur qui renvoie le même résultat:
EXISTE vs JOINDRE
Le EXISTS
opérateur renvoie TRUE
ou FALSE
lors de la JOIN
clause renvoie des lignes d’une autre table.,
Vous utilisez l’opérateurEXISTS
pour tester si une sous-requête renvoie une ligne et court-circuite dès qu’elle le fait. D’autre part, vous utilisez JOIN
pour étendre le jeu de résultats en le combinant avec les colonnes des tables associées.
En pratique, vous utilisez leEXISTS
lorsque vous avez juste besoin de vérifier l’existence de lignes de tables associées sans renvoyer de données à partir d’elles.
Dans ce tutoriel, vous avez appris à utiliser l’opérateur SQL Server EXISTS
pour tester si une sous-requête renvoie des lignes.