Case SQL [coluna] Quando em ('case1', 'case2'), então 'oops' termina?
-
18-09-2019 - |
Pergunta
Existe uma maneira de verificar um caso quando está em uma matriz:
SELECT CASE [Option] WHEN IN (1, 3, 99) THEN 'Wrong option' ELSE 'You go!' END
Solução
SELECT CASE WHEN [Option] IN (1, 3, 99) THEN 'Wrong option' ELSE 'You go' END
Outras dicas
Você pode usar o CASE WHEN <predicate> THEN <value> ... END
opção, em vez da CASE <value> WHEN <value> THEN <value> ... END
opção.
SELECT CASE WHEN [Option] IN (1, 3, 99) THEN 'Wrong option' ELSE 'You go!' END
... mas se os valores estiverem em uma tabela, você pode simplesmente fazer uma junção externa (e
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
... sem uma junção.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow