MySQL数据类型计算字段
我试图使用一个带小数点的case语句,并且使结果也是一个小数点。我以下面的陈述为例。在我的表中,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`
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如果可以的话,别忘了标记“已解决”您的主题;)哦,谢谢你!没想到我应该这么做——:)谢谢!现在这是有道理的。