MYSQL - 如何获得零值

时间:2017-01-29 04:35:08

标签: mysql sql

我有桌子,这里是结构

id    price      net_price

1     20000      19800

当我运行此查询

时,类型数据价格和net_price是双倍的
SELECT CAST(net_price - price as unsigned) WHERE id = 1

结果是18446744073709551416,我希望结果值为0.

之前感谢

1 个答案:

答案 0 :(得分:3)

-200的无符号值是18446744073709551416。

如果你想使负值为0,请使用下面的代码:

select case 
        when net_price - price < 0
            then 0
        else net_price - price
        end
from t
where id = 1;

此外,建议使用Decimal类型而不是double来进行货币计算,因为double不能完全表示值。