• Home
  • LLMs
  • Python
  • Docker
  • Kubernetes
  • Java
  • Ubuntu
  • Maven
  • Archived
  • About
Oracle | NULL (Gestion de NULL avec Oracle SQL)
  1. NULL
  2. Fonctions d'agrégations : COUNT, SUM, MIN, MAX, AVG
  3. Opérateurs : IN, NOT IN
    1. Opérateur : IN
      1. La condition est vraie si la valeur de "expression" est égale à au moins un élément de "expression_list"
      2. La condition retourne toujours faux si la liste des éléments est vide ou les éléments de la sous requête sont tous NULL
      3. La condition retourne toujours faux si la valeur de "expression" est NULL
    2. Opérateur : NOT IN
      1. La condition retourne toujours faux si au moins un élément de "expression_list" est NULL
      2. La condition retourne toujours faux si la valeur de "expression" est NULL
      3. La condition est vraie si la liste des éléments est vide
  4. Opérateurs : EXISTS, NOT EXISTS
    1. Opérateur : EXISTS
      1. La condition avec l'operateur EXISTS retourne vraie si la sous requête retourne au moins une ligne
      2. La condition avec l'operateur EXISTS retourne faux si la sous requête ne retourne aucune ligne
    2. Opérateur : NOT EXISTS
      1. La condition avec l'operateur NOT EXISTS retourne vraie si la sous requête ne retourne aucune ligne
  5. Opérations ensemblistes : UNION, UNION ALL, INTERSECT, MINUS
  6. Opérateur : DISTINCT
  7. Clauses : GROUP BY, ORDER BY

  1. NULL
    La gestion de la valeur NULL peut être différente avec certains opérateurs, fonctions, et clauses, mais de manière générale :

    • La valeur NULL ne peut pas être comparée avec aucune autre valeur ; la valeur NULL n'est ni égale, ni supérieur, ni inferieur, ni différente d'aucune autre valeur, même si l'autre valeur est NULL aussi.

      Le résultat de la comparaison avec une valeur NULL retourne toujours faux.

      Exemple 1 :


      Résultat de la requête :


    • La valeur NULL ne peut ni être additionnée, ni soustraite, ni multipliée, ni être divisée par aucune autre valeur, même si l'autre valeur est NULL aussi.

      Le résultat de ces opérations est toujours la valeur NULL.

      Exemple 1 :


      Résultat de la requête :


    • Pour tester si une valeur est NULL ou non il faut utiliser les prédicats IS NULL et IS NOT NULL.

      Exemple 1 :


      Résultat de la requête :


      Exemple 2 :


      Résultat de la requête :

  2. Fonctions d'agrégations : COUNT, SUM, MIN, MAX, AVG
    De manière générale, les fonctions d'agrégations, lorsqu'elles sont appliquées sur une colonne, elles vont ignorer les valeurs NULL.

    À l'exception de la fonction COUNT qui retourne 0, les autres fonctions vont retourner la valeur NULL si :
    La colonne utilisée comme argument de ces fonctions retourne NULL pour toutes les lignes du résultat de la requête,
    Ou si la requête ne retourne aucune ligne.

    • Exemple 1 : la colonne a.v1 est NULL pour toutes les lignes du résultat de la requête.


      Résultat de la requête :


    • Exemple 2 : la requête ne retourne aucune ligne.


      Résultat de la requête :


    • Exemple 3 : expliciter la valeur NULL comme argument de ces fonctions !!


      Résultat de la requête :


    • Exemple 4 : la colonne a.v1 est NULL pour quelques lignes du résultat de la requête.
      Les fonctions ignorent les lignes pour lesquelles la colonne a.v1 est NULL.


      Résultat de la requête :


    • Exemple 5 : expliciter une valeur numérique comme argument de ces fonctions !!
      Il est possible de spécifier une valeur numérique comme argument de ces fonctions, dans ce cas, leurs comportements seraient d'appliquer l'opération de la fonction sur la valeur de l'argument pour chaque ligne retournée par la requête.

      La fonction COUNT fait exception à cette règle, vu qu'elle ne prend pas en considération la valeur de l'argument, tant que cette valeur n'est pas NULL bien sûr.
      La fonction COUNT peut prendre aussi le caractère « * » comme argument.

      Exemple 1 :


      Résultat de la requête :

  3. Opérateurs : IN, NOT IN
    1. Opérateur : IN
      Syntaxe : expression IN (expression_list)

      Où "expression_list" peut être une liste de valeurs ou une sous requête qui peut retourner plusieurs lignes (avec une seule colonne).

      La valeur de "expression" est comparée avec chaque élément de la "expression_list".

      • La condition est vraie si la valeur de "expression" est égale à au moins un élément de "expression_list".
      • La condition retourne faux si la valeur de "expression" est différente de chaque élément de "expression_list".
      • La condition retourne toujours faux si la valeur de "expression" est NULL, la liste des éléments est vide, ou les éléments de la sous requête sont tous NULL.

      1. La condition est vraie si la valeur de "expression" est égale à au moins un élément de "expression_list".

        • Exemple 1 :


        • Exemple 2 :


        • Résultats des deux requêtes :


      2. La condition retourne toujours faux si la liste des éléments est vide ou les éléments de la sous requête sont tous NULL.

        • Exemple 1 :


        • Exemple 2 :


        • Exemple 3 :


        • Résultats des trois requêtes :


      3. La condition retourne toujours faux si la valeur de "expression" est NULL.

        • Exemple 1 :


        • Exemple 2 :


        • Résultats des deux requêtes :

    2. Opérateur : NOT IN
      Syntaxe : expression NOT IN (expression_list)

      Où "expression_list" peut être une liste de valeurs ou une sous requête qui peut retourner plusieurs lignes (avec une seule colonne).

      La valeur de "expression" est comparée avec chaque élément de la "expression_list".

      • La condition est vraie si la valeur de "expression" est différente de chaque élément de "expression_list".
      • La condition est vraie si la liste des éléments est vide.
      • La condition retourne faux si la valeur de "expression" est égale à au moins un élément de "expression_list".
      • La condition retourne toujours faux si la valeur de "expression" est NULL ou au moins un élément de "expression_list" est NULL.

      1. La condition retourne toujours faux si au moins un élément de "expression_list" est NULL.

        • Exemple 1 :


        • Exemple 2 :


        • Résultats des deux requêtes :


      2. La condition retourne toujours faux si la valeur de "expression" est NULL.

        • Exemple 1 :


        • Exemple 2 :


        • Résultats des deux requêtes :


      3. La condition est vraie si la liste des éléments est vide.

        • Exemple 1 :


          Résultat de la requête :
  4. Opérateurs : EXISTS, NOT EXISTS
    1. Opérateur : EXISTS
      Syntaxe : EXISTS (sous_requête)

      • La condition avec l'operateur EXISTS retourne vraie si la sous requête retourne au moins une ligne, sinon elle retourne faux.

      Notes : L'absence ou la présence des valeurs NULL n'affectent que la sous-requête : du moment où la sous requête retourne une ligne, alors l'operateur EXISTS retourne vraie, sinon retourne faux.

      1. La condition avec l'operateur EXISTS retourne vraie si la sous requête retourne au moins une ligne.

        • Exemple 1 :


          Résultat de la requête :

      2. La condition avec l'operateur EXISTS retourne faux si la sous requête ne retourne aucune ligne.

        • Exemple 1 :


        • Exemple 2 :


        • Résultats des deux requêtes :
    2. Opérateur : NOT EXISTS
      Syntaxe : NOT EXISTS (sous_requête)

      • La condition avec l'operateur NOT EXISTS retourne vraie si la sous requête ne retourne aucune ligne, sinon elle retourne faux.

      Notes : Faites attention, le comportement de l'operateur NOT EXISTS est complètement différent de l'operateur NOT IN lorsqu'il s'agit des valeurs NULL; l'absence ou la présence des valeurs NULL n'affectent que la sous-requête : du moment où la sous requête ne retourne aucune ligne, alors l'operateur NOT EXISTS retourne vraie, sinon retourne faux.

      1. La condition avec l'operateur NOT EXISTS retourne vraie si la sous requête ne retourne aucune ligne.

        • Exemple 1 :


          Résultat de la requête :

        • Exemple 2 :


          Résultat de la requête :

        • Exemple 3 :


        • Résultat de la requête :
  5. Opérations ensemblistes : UNION, UNION ALL, INTERSECT, MINUS
    Les opérations ensemblistes sont capables de distinguer les valeurs NULL et donc les comparer :
    Une valeur NULL est égale a une autre valeur NULL et elle est différente des autres valeurs non NULL !

    • Exemple 1 : UNION


      Résultats de la requête :

    • Exemple 2 : UNION ALL


      Résultats de la requête :

    • Exemple 3 : INTERSECT


      Résultats de la requête :

    • Exemple 4 : MINUS


      Résultats de la requête :
  6. Opérateur : DISTINCT
    Comme pour les opérations ensemblistes, l'opérateur DISTINCT est capable de distinguer les valeurs NULL et donc les comparer :
    Une valeur NULL est égale a une autre valeur NULL et elle est différente des autres valeurs non NULL !


    Résultats de la requête :
  7. Clauses : GROUP BY, ORDER BY
    Comme pour les opérations ensemblistes, les clauses GROUP BY et ORDER BY sont capables de distinguer les valeurs NULL et donc les comparer :
    Une valeur NULL est égale a une autre valeur NULL et elle est différente des autres valeurs non NULL !


    Résultats de la requête :
© 2025  mtitek