我正在尝试使用带小数的case语句,并且结果也是小数。我使用以下语句作为示例。在我的表格中,myDollar
是小数,但在这里,'newDollar'是varChar
。我尝试过使用强制转换,我无法弄清楚在哪里/如何使用它。
select tab.*,
case when flag = '1'
then (myDollar * .525)
else '0' end as newDollar
from `xxx` tab;
提前致谢!
答案 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`;