0

我有一个看起来像这样的表:

Quote     Super      Factor
29        63                   [83.79]
38        61                   [81.13]
79        65                   [86.45]

47        40                   [80]
81        25                   [50]
82        35                   [70]

如果“报价”为 29、38、79,我想将“超级”列乘以 1.33 。如果“报价”字段为 47、81、82,则将“超级”乘以 2。

报价是“BigInt(10)”,“Super”和“Factor”都有“Double”类型。表的名称是“Quote_IDX”。

注意:“[]”中的数字是计算完成后我应该得到的数字。正如您可能会说的那样,我对 MySQL 还很陌生,所以我需要一些帮助。

提前致谢。

4

1 回答 1

2

您可以使用以下使用语句的CASE语句。SELECT将向您显示数据结果:

select quote, super, 
  case when quote in (29, 38, 79)
        then super * 1.33
      when quote  in (47, 81, 82)
        then super * 2.0
      else 0
  end factor
from Quote_IDX

请参阅带有演示的 SQL Fiddle。然后,如果你想做一个UPDATEfactor

update Quote_IDX
set factor = (case when quote in (29, 38, 79)
                then super * 1.33
              when quote  in (47, 81, 82)
                then super * 2.0
              else 0 end)

请参阅带有演示的 SQL Fiddle

于 2012-10-02T20:40:15.813 回答