2010-01-05 12 views
8

¿Hay una manera de comprobar un caso en el que se encuentra en una matriz:SQL CASE [Column] WHEN IN ('case1', 'case2') ENTONCES 'oops' END?

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

no estoy seguro de lo que quiere decir? –

+0

¿Dónde está la matriz? –

+0

Quiero comprobar si la opción es igual a uno de los elementos en (1, 3, 99) debería devolver 'Opción incorrecta', sino - '¡Vaya!'. – Shimmy

Respuesta

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

Puede utilizar la opción CASE WHEN <predicate> THEN <value> ... END, en lugar de la opción CASE <value> WHEN <value> THEN <value> ... END.

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

... pero si los valores están en una tabla, sólo podía hacer una combinación externa (y

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

, o

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

... sin unirse

Cuestiones relacionadas