Case SQL [columna] cuando está en ('case1', 'case2') luego 'oops' final?
-
18-09-2019 - |
Pregunta
¿Hay alguna forma de verificar un estuche cuando está en una matriz:
SELECT CASE [Option] WHEN IN (1, 3, 99) THEN 'Wrong option' ELSE 'You go!' END
Solución
SELECT CASE WHEN [Option] IN (1, 3, 99) THEN 'Wrong option' ELSE 'You go' END
Otros consejos
Puedes usar el CASE WHEN <predicate> THEN <value> ... END
opción, en lugar de la CASE <value> WHEN <value> THEN <value> ... END
opción.
SELECT CASE WHEN [Option] IN (1, 3, 99) THEN 'Wrong option' ELSE 'You go!' END
... Pero si los valores están en una tabla, podría hacer una unió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 una unión.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow