Comment écrire une boucle conditionnelle IF...THEN dans une commande SQL SELECT

Il peut arriver qu'en manipulant une base de données, on ait besoin de faire une requête avec une condition. Il est possible de faire une condition sur requête SELECT en SQL.

Il peut arriver qu'en manipulant une base de données, on ait besoin de faire une requête avec une condition. Il est possible de faire une condition sur requête SELECT en SQL grâce à l'instruction CASE.

Cette instruction permet de spécifier des conditions les unes à la suite des autres grâce à l'instruction WHEN ... THEN, l'équivalent de IF dans d'autres langages, et d'indiquer une valeur par défaut avec l'instruction ELSE. On peut stocker le résultat du test dans une variable grâce à l'instruction ELSE.

Exemple :

SELECT CASE
 WHEN stock > 0
 THEN en stock
 ELSE périmé
 AS etat
FROM Produit

Il est possible d'imbriquer plusieurs instructions CASE ou de les inclure dans des agrégats pour effectuer des requêtes plus compliquées. Si vous développez avec un système de base de données SQL Server 2012 ou que vous utilisez Microsoft Access, vous disposez également de l'instruction IIF qui fonctionne de la manière suivante :

SELECT IIF(stock > 0, en stock, périmé) as etat FROM Produit