L’opérateur EXISTS vérifie si le résultat d’une sous-requête contient des enregistrements. S’il est vide, l’opérateur renvoie 0. Sinon, il renvoie 1.
EXISTS peut également être utilisé dans une clause WHERE.
Syntaxe
EXISTS(subquery)Exemple
Requête vérifiant l’existence de valeurs dans une sous-requête :
SELECT EXISTS(SELECT * FROM numbers(10) WHERE number > 8), EXISTS(SELECT * FROM numbers(10) WHERE number > 11)┌─in(1, _subquery1)─┬─in(1, _subquery2)─┐
│ 1 │ 0 │
└───────────────────┴───────────────────┘Requête avec une sous-requête renvoyant plusieurs lignes :
SELECT count() FROM numbers(10) WHERE EXISTS(SELECT number FROM numbers(10) WHERE number > 8);┌─count()─┐
│ 10 │
└─────────┘Requête avec une sous-requête qui renvoie un résultat vide :
SELECT count() FROM numbers(10) WHERE EXISTS(SELECT number FROM numbers(10) WHERE number > 11);┌─count()─┐
│ 0 │
└─────────┘