MySQL数据类型计算字段

MySQL数据类型计算字段,mysql,casting,decimal,case,Mysql,Casting,Decimal,Case,我试图使用一个带小数点的case语句,并且使结果也是一个小数点。我以下面的陈述为例。在我的表中,myDollar是一个十进制数,但在这里,“newDollar”是一个varChar。我试过使用cast,但我不知道在哪里/如何使用它 select tab.*, case when flag = '1' then (myDollar * .525) else '0' end as newDollar from `xxx`

我试图使用一个带小数点的case语句,并且使结果也是一个小数点。我以下面的陈述为例。在我的表中,
myDollar
是一个十进制数,但在这里,“newDollar”是一个
varChar
。我试过使用cast,但我不知道在哪里/如何使用它

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

为什么不使用IF

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

请记住,MySQL将以双精度浮点执行计算,除非您强制执行,请尝试以下操作。请注意,
else 0
中的
0
周围没有引号。这是因为您需要的是数值,而不是字符值

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

你试过不加引号吗?还是谢谢你!看起来更干净,出于某种原因,我选择case--@kenznpunky如果可以的话,别忘了标记“已解决”您的主题;)哦,谢谢你!没想到我应该这么做——:)谢谢!现在这是有道理的。