Case SQL [colonne] Quand dans ('Case1', 'Case2') puis 'Oops' se termine?
-
18-09-2019 - |
Question
Existe-t-il un moyen de vérifier un cas lorsqu'il est dans un tableau:
SELECT CASE [Option] WHEN IN (1, 3, 99) THEN 'Wrong option' ELSE 'You go!' END
La solution
SELECT CASE WHEN [Option] IN (1, 3, 99) THEN 'Wrong option' ELSE 'You go' END
Autres conseils
Vous pouvez utiliser le CASE WHEN <predicate> THEN <value> ... END
option, plutôt que le CASE <value> WHEN <value> THEN <value> ... END
option.
SELECT CASE WHEN [Option] IN (1, 3, 99) THEN 'Wrong option' ELSE 'You go!' END
... Mais si les valeurs sont dans une table, vous pouvez simplement faire une jointure extérieure (et
CASE WHEN t.Value IS NULL THEN 'Not in list' ELSE 'In list' END
, ou
CASE WHEN EXISTS (SELECT * FROM yourTable t WHERE t.value = [Option]) THEN 'Bad' ELSE 'Ok' END
... sans rejoindre.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow