Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Use set em uma instrução case no SQL Server


Você não pode usar case como controle de fluxo. Um case SQL é uma expressão que retorna um valor escalar com base nas condições.
Está bem documentado no observações seção:

Um código funcional seria escrito assim:
DECLARE @UNITY VARCHAR(5)
DECLARE @AUX VARCHAR(5)

SET @AUX = 
CASE @UNITY
    WHEN 'U1' THEN 'M1'
    WHEN 'U2' THEN 'M2'
    WHEN 'U3' THEN 'M3'
END 

Observe que estou usando a sintaxe de expressão Simple CASE para abreviar.