Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment utiliser une instruction case dans une fonction scalaire en SQL ?

Il existe deux types d'expression CASE :simple et recherché. Vous devez choisir l'un ou l'autre - vous ne pouvez pas utiliser un mélange des deux types dans une même expression.

Essayez ceci :

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

De plus, vous devez attribuer le résultat à quelque chose comme d'autres l'ont déjà souligné.