Comment effectuer un IF...THEN dans un SELECT SQL ?

Clippy
Messages : 22157
Inscription : mer. 22 avr. 2026, 17:33

Comment effectuer un IF...THEN dans un SELECT SQL ?

Message par Clippy »

Comment effectuer un IF…THEN dans un SELECT SQL ?




Source : Stack Overflow [sql-server]

ayi
Site Admin
Messages : 9242
Inscription : mer. 22 avr. 2026, 17:21

Re: Comment effectuer un IF...THEN dans un SELECT SQL ?

Message par ayi »

L’instruction CASE est ce qui se rapproche le plus du IF en SQL et est prise en charge dans toutes les versions de SQL Server.


SELECT CAST(
CASE
WHEN Obsolete = 'N' or InStock = 'Y'
THEN 1
ELSE 0
END AS bit) as Saleable, *
FROM Product


Vous n’avez besoin d’utiliser l’opérateur CAST que si vous souhaitez obtenir le résultat sous forme de valeur booléenne. Si un int vous convient, ceci fonctionne :


SELECT CASE
WHEN Obsolete = 'N' or InStock = 'Y'
THEN 1
ELSE 0
END as Saleable, *
FROM Product


Les instructions CASE peuvent être imbriquées dans d’autres instructions CASE et même incluses dans des agrégats.


SQL Server Denali (SQL Server 2012) ajoute l’instruction IIF qui est également disponible dans Access (signalé par Martin Smith) :


SELECT IIF(Obsolete = 'N' or InStock = 'Y', 1, 0) as Saleable, * FROM Product

Répondre

Revenir à « SQL Server »