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

Como usar uma instrução case na função de valor escalar no SQL?


Existem dois tipos de expressão CASE :simples e pesquisado. Você deve escolher um ou outro - você não pode usar uma mistura dos dois tipos em uma expressão.

Tente isto:
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

Além disso, você precisa atribuir o resultado a algo como outros já apontaram.