我正在尝试使用带小数的case语句,并使结果也是小数。我使用下面的语句作为示例。在我的表中,myDollar是一个小数,但在这里,'newDollar‘是一个varChar。我试过使用cast,但我不知道在哪里/如何在这里使用它。
select tab.*,
case when flag = '1'
then (myDollar * .525)
else '0' end as newDollar
from `xxx` tab;提前感谢!
发布于 2015-11-11 07:39:51
记住,MySQL将以双精度浮点数执行计算,除非您强制它,试试这个。注意,else 0中的0没有用引号括起来。这是因为您需要的是数值,而不是字符值。
SELECT CAST(case when flag = '1' then (myDollar * 0.525)
else 0 end
AS DECIMAL(10,2)) as newDollar发布于 2015-11-11 07:30:05
为什么不使用IF呢?
select *,
if (`flag` = '1', `myDollar` * 0.525 , 0.0) as newDollar
from `tab`;https://stackoverflow.com/questions/33641442
复制相似问题