É possível criar, dentro de uma única instrução select, assim:
SELECT
name,
CASE
WHEN name = 'a' THEN 'a'
ELSE 'b'
END tag,
CASE
WHEN tag = 'a' THEN 'a2'
ELSE tag = 'b2'
END tag2
FROM table_name
Meu motivo é que há uma coluna anterior na instrução única em que quero usar o resultado da instrução case na minha outra coluna.
Eu quero saber se isso pode ser feito usando variáveis como:
SELECT
name,
CASE
WHEN name = 'a' THEN 'a'
ELSE 'b'
END @result = tag,
CASE @result
WHEN 'a' THEN 'a2'
ELSE 'b2'
END tag2
FROM table_name
Eu sei que o segundo código está incorreto, mas essa é a lógica que eu preciso. Obrigado rapazes!
Você precisa repetir a expressão ou derivá-la em um escopo separado, por exemplo: