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>
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>
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>
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>
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!