sql >> Base de Datos >  >> RDS >> Sqlserver

Use set en una declaración de caso en SQL Server

No puede usar case como control de flujo. Un case de SQL es una expresión que devuelve un valor escalar basado en la(s) condición(es).
Está bien documentado en observaciones sección:

Un código de trabajo se escribiría así:

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 

Tenga en cuenta que estoy usando la sintaxis de la expresión CASE simple por razones de brevedad.