SQL -Fall [Spalte] Wenn in ('Fall1', 'case2') dann 'oops' endet?
-
18-09-2019 - |
Frage
Gibt es eine Möglichkeit, einen Fall zu überprüfen, wenn er sich in einem Array befindet:
SELECT CASE [Option] WHEN IN (1, 3, 99) THEN 'Wrong option' ELSE 'You go!' END
Lösung
SELECT CASE WHEN [Option] IN (1, 3, 99) THEN 'Wrong option' ELSE 'You go' END
Andere Tipps
Du kannst den ... benutzen CASE WHEN <predicate> THEN <value> ... END
Option eher als die CASE <value> WHEN <value> THEN <value> ... END
Möglichkeit.
SELECT CASE WHEN [Option] IN (1, 3, 99) THEN 'Wrong option' ELSE 'You go!' END
... aber wenn sich die Werte in einer Tabelle befinden, könnten Sie einfach eine äußere Verbindung machen (und
CASE WHEN t.Value IS NULL THEN 'Not in list' ELSE 'In list' END
, oder
CASE WHEN EXISTS (SELECT * FROM yourTable t WHERE t.value = [Option]) THEN 'Bad' ELSE 'Ok' END
... ohne Join.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow