How to use a case statement in scalar valued function in SQL?

前端 未结 6 1467
半阙折子戏
半阙折子戏 2020-12-31 04:26

I want to get one value from a function using a case statement. I tried the following but it does not work:

CREATE FUNCTION [FATMS].[fnReturnByPeriod]
(

            


        
6条回答
  •  盖世英雄少女心
    2020-12-31 05:03

    Declare a second variable and then set that value because you aren't resetting @Period.

    For example:

    DECLARE @Output AS INT
    
    SELECT @Output = CASE @Period 
                     WHEN 1 then 1     
                     WHEN @Period > 1 AND @Period <= 7 THEN 1      -- Should be 2 
                     WHEN @Period > 7 AND @Period <= 30 THEN 1     -- Should be 3
                     WHEN @Period > 30 AND @Period<= 90 THEN 1     -- Should be 4
                     WHEN @Period > 90 AND @Period <= 180 THEN 1   -- Should be 5  
                     WHEN @Period > 180 AND @Period <= 360 THEN 1  -- Should be 6   
                     ELSE 0 END;
    
    RETURN @Output;
    

    I have left it like this as I'm assuming you are going to change your values for each of these CASE statements.

提交回复
热议问题