FirebirdSQL logo

Sous-requêtes

Une sous-requête est un type particulier d’expression qui est en fait une requête intégrée dans une autre requête.Les sous-requêtes sont écrites comme des requêtes SELECT normales, mais elles doivent être mises entre parenthèses.Les expressions de sous-requêtes sont utilisées de la manière suivante :

  • Pour spécifier une colonne de sortie dans une liste de sélection SELECT ;

  • Pour obtenir des valeurs ou des conditions pour les prédicats de recherche (phrases WHERE, HAVING) ;

  • Pour créer un ensemble de données à partir duquel la requête d’inclusion peut sélectionner comme s’il s’agissait d’une table ou d’une vue ordinaire.Ces sous-requêtes apparaissent dans la phrase FROM (tables dérivées) ou dans une expression de table générique (CTE).

Sous-requêtes liées

Une sous-requête peut être liée (corrélée). Une requête est dite corrélée lorsque la sous-requête et la requête principale sont interdépendantes.Cela signifie que pour chaque enregistrement de la sous-requête à traiter, un enregistrement de la requête principale doit également être récupéré, c’est-à-dire quela sous-requête est entièrement dépendante de la requête principale.

Example 1. Sous-requête liée
SELECT *
FROM Customers C
WHERE EXISTS
      (SELECT *
       FROM Orders O
       WHERE C.cnum = O.cnum
         AND O.adate = DATE '10.03.1990');

Lorsque vous utilisez des sous-requêtes pour récupérer les valeurs des colonnes de sortie dans une liste de sélection SELECT, la sous-requête doit retourner un résultat scalaire.