Logique conditionnelle dans les instructions SQL SELECT : un guide complet
SQL nécessite souvent une logique conditionnelle dans les instructions SELECT
pour modifier ou filtrer les données. L'instruction CASE
fournit une solution polyvalente, prise en charge dans de nombreux dialectes SQL.
Pour imiter une structure IF...THEN
dans une requête SELECT
, utilisez l'instruction CASE
comme indiqué ci-dessous :
<code class="language-sql">SELECT CAST( CASE WHEN condition1 OR condition2 THEN value_if_true ELSE value_if_false END AS data_type) AS new_column, * FROM table_name;</code>
Voici un aperçu de la syntaxe :
condition1
et condition2
: Les conditions à évaluer.value_if_true
et value_if_false
: Les valeurs renvoyées selon que les conditions sont vraies ou fausses.data_type
: Le type de données du new_column
résultat.table_name
: La table à partir de laquelle les données sont sélectionnées.Par exemple, pour ajouter une colonne Saleable
à un tableau Product
, indiquant la disponibilité du produit en fonction du statut Obsolete
et InStock
:
<code class="language-sql">SELECT CAST( CASE WHEN Obsolete = 'N' OR InStock = 'Y' THEN 1 ELSE 0 END AS bit) AS Saleable, * FROM Product;</code>
Une version simplifiée, en omettant CAST
, donne un résultat entier :
<code class="language-sql">SELECT CASE WHEN Obsolete = 'N' OR InStock = 'Y' THEN 1 ELSE 0 END AS Saleable, * FROM Product;</code>
CASE
peuvent être imbriquées ou intégrées dans des fonctions d'agrégation. De plus, SQL Server 2012 a introduit l'instruction IIF
, offrant une syntaxe concise alternative :
<code class="language-sql">SELECT IIF(Obsolete = 'N' OR InStock = 'Y', 1, 0) AS Saleable, * FROM Product;</code>
Cela simplifie la logique conditionnelle dans vos SELECT
instructions, offrant flexibilité et efficacité dans la manipulation des données.
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!