MySQL数据类型计算字段

时间:2015-11-10 23:11:17

标签: mysql casting decimal case

我正在尝试使用带小数的case语句,并且结果也是小数。我使用以下语句作为示例。在我的表格中,myDollar是小数,但在这里,'newDollar'是varChar。我尝试过使用强制转换,我无法弄清楚在哪里/如何使用它。

select tab.*,
    case when flag = '1'
        then (myDollar * .525)
            else '0' end as newDollar
                from `xxx` tab;

提前致谢!

2 个答案:

答案 0 :(得分:1)

请记住MySQL将以双精度浮点执行计算,除非你强制它,试试这个。请注意,0中的else 0在其周围没有引号。那是因为你想要一个数值,而不是一个字符值。

SELECT CAST(case when flag = '1' then (myDollar * 0.525)
                                 else 0 end
            AS DECIMAL(10,2)) as newDollar

答案 1 :(得分:0)

为什么不使用IF?

select *,
if (`flag` = '1', `myDollar` * 0.525 , 0.0) as newDollar
            from `tab`;
相关问题