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

¿Cómo usar una declaración de caso en una función de valor escalar en SQL?

Hay dos tipos de expresión CASE :simple y buscado. Debe elegir uno u otro; no puede usar una mezcla de ambos tipos en una sola expresión.

Prueba esto:

SELECT CASE
    WHEN @Period = 1 THEN 1
    WHEN @Period > 1 AND @Period <= 7 THEN 2
    WHEN @Period > 7 AND @Period <= 30 then 3
    -- etc...
    ELSE 0
END

Además, debe asignar el resultado a algo como ya lo han señalado otros.