如何用字符串条件划分值?

时间:2016-03-24 17:41:21

标签: sql sql-server

我有一个数量(整数)字段和一个名字(字符串)字段。如何仅将产品C除以3以返回新数量值?我将错误地将字符串和整数类型与我尝试的所有内容混合起来。

Name        Quantity   New Quantity
Product A      5              5
Product B     35             35
Product C     27              9

以下是我正在使用的查询:

SELECT 
      chg.name
      , sim.Description      
      , loc.location_name
      , Service_Date = CONVERT(DATE, chg.begin_date_of_service)
      , sim.Service_Type
      , sim.Visit_Type
      , sim.Contraceptive_Type
      , sim.Lab_Type
      , sim.Immunization_Type
      , chg.quantity

FROM 
      charges chg 
      INNER JOIN PPMNS_Service_Item_Info sim ON chg.name = sim.name
            AND chg.begin_date_of_service BETWEEN sim.SIM_Eff_Date AND sim.SIM_Exp_Date
            AND ((chg.begin_date_of_service BETWEEN   sim.Billing_NDC_Eff_Date AND sim.Billing_NDC_Exp_Date) OR sim.Billing_NDC_Eff_Date = '')
      INNER JOIN location_mstr loc ON chg.location_id = loc.location_id
WHERE 
      chg.link_id IS NULL
      AND sim.Visit_Rank < 50

3 个答案:

答案 0 :(得分:0)

这实际上并不是非常难以做到的。从您的标签判断,您很可能在SQL程序中执行此操作,例如Razor或任何类型的程序。

Select Quantity, (Quantity / 3)
From table
where name = "PRODUCT C"

这应该就是它的全部内容。

答案 1 :(得分:0)

如果我理解正确,你会使用view2声明:

case

请注意,如果两个操作数都是整数,则SQL Server会执行整数除法。如果select . . . (case when name = 'PRODUCT C' then chg.quantity / 3 else chg.quantity end) as quantity . . . 是一个整数而你想要小数位,那么你可以除以quantity而不是3.0

答案 2 :(得分:0)

如果您使用的是SQL Server 2012或更高版本,则可以将以下列添加到Select语句

iif(名称='PRODUCT C',数量/ 3.0,数量)newQuantity