在存储过程中使用if / else进行计算

时间:2014-04-28 07:23:17

标签: sql-server-2008 select stored-procedures economics

在我的存储过程中,我现在正尝试将FEE添加到我的销售中。

  • 如果item_price为> 69它应该有6个费用
  • 如果item_price是< = 69,则应该有3个费用
  • 如果item_price是< = 19则应该有费用1

我已经尝试将它添加到我的SELECT语句中,但我不知道如何正确插入它。

   AS 'Income inc VAT, ex Discount',
   case when item_price > 69 then 6
   case when item_price <= 69 then 3
   else 1
   AS 'fee'

为了举例说明我是如何尝试实现它的,我添加了一些select语句......

解决方案: 在我的select语句中,我根据我得到的很好的答案添加了这段代码,并且它有效:

       case when item_price > 69 then 6 
       when item_price <= 69 then 3 
       else 1
       end
       AS 'Fee'

1 个答案:

答案 0 :(得分:1)

您应该使用案例陈述:

从记忆中写作:

insert into fee (fee_value)
select 
  case when item_price > 69 then 6
  case when item_price <= 69 then 3
  else 1
end

等等......

或者,也许你想使用变量:

declare @fee int

if @item_price > 69 
 set @fee = 6

...

insert into fee(fee_value) 
values (@fee)

或另一种方式:

declare @item_price int  = 12

declare @fee int

SELECT
  @fee = case 
           when @item_price > 69 then 6
           when @item_price between 13 and 69 then 2
           else 1
         end

select @fee