Maison >base de données >tutoriel mysql >Comment implémenter la logique conditionnelle dans les instructions SQL SELECT ?

Comment implémenter la logique conditionnelle dans les instructions SQL SELECT ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-22 15:21:10584parcourir

How to Implement Conditional Logic in SQL SELECT Statements?

Logique conditionnelle dans les instructions SQL SELECT

Les instructions SELECT de SQL ne prennent pas directement en charge les constructions IF...THEN. Cependant, deux alternatives efficaces existent pour implémenter la logique conditionnelle : l'instruction CASE et la fonction IIF (disponible dans certains dialectes SQL).

Utilisation de l'instruction CASE

L'instruction CASE reflète la fonctionnalité de IF...THEN dans d'autres langages de programmation. Il évalue les conditions de manière séquentielle et renvoie une valeur basée sur la première condition remplie.

Syntaxe :

<code class="language-sql">SELECT
    CASE
        WHEN condition1 THEN result1
        WHEN condition2 THEN result2
        ...
        ELSE default_result
    END AS new_column_name,
    other_columns
FROM your_table;</code>

Exemple :

<code class="language-sql">SELECT
    CASE
        WHEN IsActive = 'Yes' THEN 'Active'
        WHEN IsActive = 'No' THEN 'Inactive'
        ELSE 'Unknown'
    END AS Status,
    *
FROM Users;</code>

Cette requête ajoute une colonne « Statut », attribuant « Actif », « Inactif » ou « Inconnu » en fonction de la valeur de la colonne IsActive.

Utilisation de la fonction IIF (SQL Server)

La fonction IIF (introduite dans SQL Server 2012) offre un moyen concis de gérer la logique conditionnelle dans les instructions SELECT.

Syntaxe :

<code class="language-sql">IIF(condition, true_result, false_result)</code>

Exemple :

<code class="language-sql">SELECT
    IIF(OrderTotal > 100, 'High Value', 'Low Value') AS OrderCategory,
    *
FROM Orders;</code>

Cet exemple crée une colonne « OrderCategory », classifiant les commandes comme « Valeur élevée » ou « Valeur faible » en fonction du OrderTotal. Notez que IIF est spécifique à SQL Server et peut ne pas être disponible dans d'autres systèmes de bases de données. Pour une compatibilité plus large, la déclaration CASE est généralement préférée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn