Using tsql greater than sign in CASE Expression

前端 未结 6 2189
耶瑟儿~
耶瑟儿~ 2021-01-17 16:02
(case [dbo].[YearsInService]([DateEngaged],getdate())
   when (0) then (0) 
   when (1) then (4) 
   when (2) then (8)
    when (3) then (12)
     when (4) then (32)         


        
6条回答
  •  -上瘾入骨i
    2021-01-17 16:29

    I like @kaf 's answer, just want add that you may reduce the number of case by this

    select case when results BETWEEN 0 AND 3 then results * 4
                when results BETWEEN 4 AND 7 then results * 8
                when results BETWEEN 8 AND 9 then results * 13
                when results >= 10 then 150
                else -1 
            end as CaseResults
    from (select [dbo].[YearsInService]([DateEngaged],getdate()) results
          from yourTable
         ) Temp
    

提交回复
热议问题