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!