如何截断mysql列中的小数点

时间:2016-04-15 13:54:51

标签: mysql sql

我有这样的表

Percentage
0.00
0.00
10.10
0.90
0.00

我希望它像这样

Percentage
0
0
10.10
0.90
0

这是我的查询

  SELECT discount_percentage - TRUNCATE(discount_percentage, 0),    IF(discount_percentage - TRUNCATE(discount_percentage, 0) = 0.00, TRUNCATE(discount_percentage, 0), discount_percentage) AS percentage FROM `order` WHERE 1

我的结果是:

      discount_percentage - TRUNCATE(discount_percentage, 0)   percentage
                                                       0.00     0.00
                                                       0.00     0.00
                                                       0.99     10.99
                                                       0.00     0.00

我的precentage字段的类型为float

如果0.00表示我想要0,如果10.00表示10,10.99表示10.99。如果有人知道让我离开这个

2 个答案:

答案 0 :(得分:0)

试试这个......我想这就是你要找的......

select 
case when v regexp '(.)(\.00$)' then truncate(v,0) else v end as Percentage
from YourTable;

答案 1 :(得分:-1)

SELECT百分比,SUM(例如,百分比> = 0 THEN百分比ELSE 0 END)as discount_percentage FROM #test GROUP BY百分比

它为我工作,但有一件事你需要检查。最好将GROUP BY做一些其他列然后百分比(也许是id列?)