Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Usa set in un'istruzione case in SQL Server

Non è possibile utilizzare case come controllo di flusso. Un case SQL è un'espressione che restituisce un valore scalare in base alle condizioni.
È ben documentato in osservazioni sezione:

Un codice funzionante verrebbe scritto in questo modo:

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 

Nota che sto usando la sintassi dell'espressione CASE semplice per brevità.