Comment spécifier les conditions NULL en utilisant les instructions CASE dans SQL

Lorsque vous manipulez des données en SQL, il est important d’effectuer des opérations spécifiques sur les valeurs NULL. En utilisant les instructions CASE, il devient possible de spécifier des conditions pour les valeurs NULL, permettant une manipulation flexible des données. Cet article explique comment gérer les valeurs NULL en utilisant des instructions CASE en SQL avec des exemples concrets.

Sommaire

Structure de base des instructions CASE

L’instruction CASE est une structure de contrôle en SQL qui peut renvoyer différents résultats en fonction des conditions spécifiées. La syntaxe de base est la suivante :

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE resultN
END

Dans cette syntaxe, le résultat correspondant result est renvoyé lorsque chaque condition condition est remplie. Si aucune des conditions n’est remplie, le résultat de la clause ELSE est renvoyé. En utilisant les instructions CASE, une ramification conditionnelle complexe peut être implémentée dans les requêtes SQL.

Comment spécifier les valeurs NULL

Pour spécifier les valeurs NULL comme conditions, utilisez IS NULL dans l’expression conditionnelle. Il est important de distinguer les valeurs NULL car elles indiquent l’absence de données spécifiques. La syntaxe suivante démontre comment renvoyer une valeur spécifique lorsque la colonne column_name est NULL.

CASE
    WHEN column_name IS NULL THEN 'Value if NULL'
    ELSE column_name
END

Dans cette syntaxe, si column_name est NULL, 'Value if NULL' est renvoyé, sinon la valeur de column_name est renvoyée telle quelle. Cette méthode permet une gestion appropriée des valeurs NULL.

Exemple 1 : Définir des valeurs par défaut pour les NULL

Voici un exemple de définition d’une adresse email par défaut lorsque l’adresse email d’un client est NULL dans une base de données client. Cette opération aide à maintenir la cohérence des données.

SELECT
    customer_id,
    customer_name,
    CASE
        WHEN email IS NULL THEN 'default@example.com'
        ELSE email
    END AS email_address
FROM
    customers;

Cette requête sélectionne l’ID client, le nom du client et l’adresse email de la table customers. Si l’adresse email est NULL, 'default@example.com' est renvoyée, et si elle n’est pas NULL, l’adresse email originale est renvoyée. En utilisant cette méthode, des valeurs par défaut cohérentes peuvent être définies pour les valeurs NULL.

Exemple 2 : Effectuer des opérations différentes en fonction des valeurs NULL

Ensuite, examinons un exemple d’exécution d’opérations différentes en fonction des valeurs NULL. Par exemple, dans une base de données de ventes, si le montant des ventes est NULL, il est affiché comme « Not Entered »; sinon, le montant des ventes est affiché.

SELECT
    sale_id,
    product_name,
    CASE
        WHEN sale_amount IS NULL THEN 'Not Entered'
        ELSE CAST(sale_amount AS VARCHAR)
    END AS sale_status
FROM
    sales;

Cette requête sélectionne l’ID de la vente, le nom du produit et le statut de la vente de la table sales. Si le sale_amount est NULL, il est affiché comme « Not Entered », et s’il n’est pas NULL, le montant des ventes est affiché sous forme de chaîne. Cette méthode permet une gestion appropriée des valeurs NULL et améliore la lisibilité des données.

Conclusion

Nous avons expliqué comment gérer les valeurs NULL en utilisant les instructions CASE en SQL. En utilisant IS NULL pour spécifier les valeurs NULL comme conditions, il est possible de définir des valeurs par défaut appropriées ou d’effectuer différentes opérations. Cela permet une manipulation flexible des données tout en maintenant la cohérence et la lisibilité des données. En tirant parti des instructions CASE dans les opérations de base de données, vous pouvez améliorer vos compétences en créant des requêtes plus avancées.

Sommaire