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

Come utilizzare un'istruzione case in una funzione con valore scalare in SQL?

Esistono due tipi di espressione CASE :semplice e ricercato. Devi scegliere l'uno o l'altro:non puoi usare una miscela di entrambi i tipi in un'unica espressione.

Prova questo:

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

Inoltre, devi assegnare il risultato a qualcosa che altri hanno già sottolineato.