首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >拆分值以百万、千、单位为单位

拆分值以百万、千、单位为单位
EN

Stack Overflow用户
提问于 2021-03-15 19:40:56
回答 2查看 148关注 0票数 1

如何在星火sql中求值拆分为数十亿、百万、数千、单位和小数

目前,我尝试了以下选项

-ABS(数量)%1000000输出: 562191.7974663

单位-ABS(数量)%1000输出: 191.7974663

小数-ABS(数量)%1输出: 0.7974663或-0.56724

然而,我正在寻找一个输出如下表所示。

代码语言:javascript
运行
复制
Amount                   Amt_Billions    Amt_Millions   Amt_Thousands   Amt_Units  Amt_Decimals
3946562191.7974663       3000000000      946000000      562000          191        7974663
-743245613.56724                         743000000      245000          613        56724

有人能帮我计算一下吗?

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-15 20:27:43

你可以得到这样的数量级。

代码语言:javascript
运行
复制
floor(abs(Amount)%1000000000000/1000000000)*1000000000 Billions,
floor(abs(Amount)%1000000000/1000000)*1000000 Millions,
floor(abs(Amount)%1000000/1000)*1000 Thousands,
floor(abs(Amount)%1000) Units

转换小数部分我想你将不得不求助于一个字符串表达式(转换为string,查找“的索引”)。然后右转(string,len(string)-index),最后强制转换为int,当然,除非它只是为了显示目的。

票数 1
EN

Stack Overflow用户

发布于 2021-03-15 20:18:27

嗯嗯。。。

代码语言:javascript
运行
复制
floor(amount / 1000000000) * 1000000000 as billions,
floor((amount % 1000000000) / 1000000) * 1000000 as millions,
floor((amount % 1000000) / 1000) * 1000) as thousands,
floor(amount % 1000) as units

小数是唯一棘手的。这些数字没有意义,因为0.1,0.01,0.001都将决定为1。我建议在一些单位这样做,例如数百万人:

代码语言:javascript
运行
复制
floor((amount % 1) * 1000000) as units
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66644639

复制
相关文章

相似问题

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