FirebirdSQL logo

NULL dans les expressions logiques

Nous avons déjà considéré que not (NULL) résulte en NULL.Pour les opérateurs AND et OR, l’interaction est un peu plus compliquée :

NULL or false → NULL
NULL or true → true
NULL or NULL → NULL
NULL and false → false
NULL and true → NULL
NULL and NULL → NULL
Example 1. NULL et les expressions logiques
(1 = NULL) or (1 <> 1)    -- returns NULL
(1 = NULL) or FALSE       -- returns NULL
(1 = NULL) or (1 = 1)     -- returns TRUE
(1 = NULL) or TRUE        -- returns TRUE
(1 = NULL) or (1 = NULL)  -- returns NULL
(1 = NULL) or UNKNOWN     -- returns NULL
(1 = NULL) and (1 <> 1)   -- returns FALSE
(1 = NULL) and FALSE      -- returns FALSE
(1 = NULL) and (1 = 1)    -- returns NULL
(1 = NULL) and TRUE       -- returns NULL
(1 = NULL) and (1 = NULL) -- returns NULL
(1 = NULL) and UNKNOWN    -- returns NULL

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).