2010-01-05 10 views
8

Czy istnieje sposób, aby sprawdzić przypadek, kiedy to w tablicy:SQL CASE [Column] WHEN IN ("case1", "case2") THEN "Oops" END?

SELECT CASE [Option] WHEN IN (1, 3, 99) THEN 'Wrong option' ELSE 'You go!' END 
+0

nie wiesz co masz na myśli? –

+0

Gdzie jest tablica? –

+0

Chcę sprawdzić, czy opcja jest równa jednej z pozycji w (1, 3, 99) powinien zwrócić 'Wrong option', else - 'You go!'. – Shimmy

Odpowiedz

18
SELECT CASE WHEN [Option] IN (1, 3, 99) THEN 'Wrong option' ELSE 'You go' END 
4

Można użyć opcji CASE WHEN <predicate> THEN <value> ... END zamiast opcji CASE <value> WHEN <value> THEN <value> ... END.

SELECT CASE WHEN [Option] IN (1, 3, 99) THEN 'Wrong option' ELSE 'You go!' END 

... ale jeśli wartości są w tabeli, można po prostu zrobić sprzężenie zewnętrzne (i

CASE WHEN t.Value IS NULL THEN 'Not in list' ELSE 'In list' END 

lub

CASE WHEN EXISTS (SELECT * FROM yourTable t WHERE t.value = [Option]) THEN 'Bad' ELSE 'Ok' END 

... bez sprzężenia