Maison > base de données > tutoriel mysql > Comment puis-je implémenter une logique conditionnelle dans les instructions SQL SELECT à l'aide de CASE et IIF ?

Comment puis-je implémenter une logique conditionnelle dans les instructions SQL SELECT à l'aide de CASE et IIF ?

DDD
Libérer: 2025-01-22 15:06:14
original
320 Les gens l'ont consulté

How Can I Implement Conditional Logic in SQL SELECT Statements using CASE and IIF?

Maîtriser la logique conditionnelle dans les instructions SQL SELECT : CASE et IIF

Gérer efficacement la logique conditionnelle dans les instructions SQL SELECT est crucial pour la manipulation et le filtrage des données. Bien qu'une construction IF...THEN directe ne soit pas disponible en SQL standard, l'instruction CASE et IIF (dans SQL Server Denali et versions ultérieures) fournissent des alternatives robustes.

L'instruction CASE : votre cheval de bataille conditionnel SQL

L'instruction CASE reflète la fonctionnalité de IF...THEN, évaluant les conditions de manière séquentielle et renvoyant une valeur basée sur la première condition vraie. Sa structure est la suivante :

<code class="language-sql">SELECT
  CASE
    WHEN condition1 THEN value1
    WHEN condition2 THEN value2
    ...
    ELSE default_value
  END AS <alias>,  -- Assign an alias to the result
  *
FROM <table_name></code>
Copier après la connexion

Considérez cette application pratique :

<code class="language-sql">SELECT CAST(
  CASE
    WHEN Obsolete = 'N' OR InStock = 'Y' THEN 1
    ELSE 0
  END AS bit) AS Saleable,  -- Casts the result as a BIT (Boolean)
  *
FROM Product</code>
Copier après la connexion

Notez l'opérateur CAST. Sans cela, le résultat est un entier (0 ou 1) ; avec CAST, il est converti en booléen (VRAI ou FAUX).

IIF : une option conditionnelle concise (SQL Server)

SQL Server a introduit l'instruction IIF (Immediate If), offrant une alternative plus compacte à CASE :

<code class="language-sql">SELECT IIF(condition, true_value, false_value) AS <alias>,
  *
FROM <table_name></code>
Copier après la connexion

Voici comment cela s'applique à notre exemple :

<code class="language-sql">SELECT IIF(Obsolete = 'N' OR InStock = 'Y', 1, 0) AS Saleable,
  *
FROM Product</code>
Copier après la connexion

CASE et IIF sont des outils indispensables pour implémenter une logique conditionnelle dans les requêtes SQL SELECT, permettant une manipulation dynamique des données et un filtrage efficace.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal