Der CASE
-Anweisung kommt IF in SQL am nächsten und wird von allen Versionen von SQL Server unterstützt.
SELECT CAST(
CASE
WHEN Obsolete = 'N' or InStock = 'Y'
THEN 1
ELSE 0
END AS bit) as Saleable, *
FROM Product
Sie müssen nur den CAST
verwenden -Operator, wenn Sie das Ergebnis als booleschen Wert wünschen. Wenn Sie mit einem int
zufrieden sind , das funktioniert:
SELECT CASE
WHEN Obsolete = 'N' or InStock = 'Y'
THEN 1
ELSE 0
END as Saleable, *
FROM Product
CASE
Anweisungen können in andere CASE
eingebettet werden Anweisungen und sogar in Aggregaten enthalten.
SQL Server Denali (SQL Server 2012) fügt die IIF-Anweisung hinzu, die auch in Access verfügbar ist (darauf weist Martin Smith hin):
SELECT IIF(Obsolete = 'N' or InStock = 'Y', 1, 0) as Saleable, * FROM Product