You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何从数字中提取千位整数部分及剩余数值?

获取数字千位以外剩余值的最优方案

要提取任意正整数去掉千位及以上部分后的剩余数值,最优且通用的解法是使用取模运算MOD(number, 1000),这个公式能完美适配所有位数的正整数场景,完全覆盖你提到的550、12501、50这类不同长度的数字。

为什么这个公式靠谱?

取模运算的核心是计算一个数除以另一个数后的余数,当我们对1000取模时,恰好会得到原数除以1000后剩下的千位以下部分,完全匹配你要的剩余数值需求。

各类场景测试示例(适配Oracle环境)

以下是针对不同数字的实际测试代码(和你之前用的DUAL表环境一致):

  • 针对1550
    SELECT MOD(1550, 1000) FROM DUAL;
    
    返回结果:550
  • 针对12501
    SELECT MOD(12501, 1000) FROM DUAL;
    
    返回结果:2501
  • 针对50
    SELECT MOD(50, 1000) FROM DUAL;
    
    返回结果:50
  • 额外测试边界值1000
    SELECT MOD(1000, 1000) FROM DUAL;
    
    返回结果:0(逻辑合理,千位为1时剩余部分为0)

和现有千位提取公式的配合使用

如果需要同时获取千位整数部分和剩余数值,可以把两个公式整合到同一条查询中:

SELECT 
  TRUNC(target_number/1000) AS 千位整数部分,
  MOD(target_number, 1000) AS 剩余数值
FROM DUAL;

只需把target_number替换成你的目标数字或字段名即可。


内容的提问来源于stack exchange,提问作者syedcic

火山引擎 最新活动