首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL数据类型计算字段

MySQL数据类型计算字段
EN

Stack Overflow用户
提问于 2015-11-11 07:11:17
回答 2查看 577关注 0票数 1

我正在尝试使用带小数的case语句,并使结果也是小数。我使用下面的语句作为示例。在我的表中,myDollar是一个小数,但在这里,'newDollar‘是一个varChar。我试过使用cast,但我不知道在哪里/如何在这里使用它。

代码语言:javascript
复制
select tab.*,
    case when flag = '1'
        then (myDollar * .525)
            else '0' end as newDollar
                from `xxx` tab;

提前感谢!

EN

回答 2

Stack Overflow用户

发布于 2015-11-11 07:39:51

记住,MySQL将以双精度浮点数执行计算,除非您强制它,试试这个。注意,else 0中的0没有用引号括起来。这是因为您需要的是数值,而不是字符值。

代码语言:javascript
复制
SELECT CAST(case when flag = '1' then (myDollar * 0.525)
                                 else 0 end
            AS DECIMAL(10,2)) as newDollar
票数 1
EN

Stack Overflow用户

发布于 2015-11-11 07:30:05

为什么不使用IF呢?

代码语言:javascript
复制
select *,
if (`flag` = '1', `myDollar` * 0.525 , 0.0) as newDollar
            from `tab`;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33641442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档