You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL中如何将Decimal类型按规则格式化为7位定长整数

SQL 按规则格式化Decimal类型实现方案

注意:你要求的输出带前导零,原生Integer数值类型无法保留前导零,因此最终输出为定长字符串类型。

核心转换逻辑

  • 提取Decimal的整数部分,舍弃小数位
  • 整数部分末尾补与原小数位数等量的0(示例中小数为2位,等价于整数部分乘以100)
  • 将计算结果格式化为7位定长字符串,长度不足时左侧补前导零

如果你的Decimal字段小数位数不是2位,将乘以的100替换为对应10的小数位数次方即可,比如3位小数就乘以1000。

各主流数据库实现代码

测试用输入均为999.11,输出均为0099900,符合要求。

MySQL

-- input_decimal 为你的Decimal字段,your_table 为对应表名
SELECT LPAD(FLOOR(input_decimal) * 100, 7, '0') AS format_result FROM your_table;

Oracle

-- input_decimal 为你的Decimal字段,your_table 为对应表名
SELECT LPAD(TRUNC(input_decimal) * 100, 7, '0') AS format_result FROM your_table;

PostgreSQL

-- input_decimal 为你的Decimal字段,your_table 为对应表名
SELECT LPAD((FLOOR(input_decimal) * 100)::TEXT, 7, '0') AS format_result FROM your_table;

SQL Server

-- input_decimal 为你的Decimal字段,your_table 为对应表名
SELECT RIGHT('0000000' + CAST(FLOOR(input_decimal) * 100 AS VARCHAR(7)), 7) AS format_result FROM your_table;

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 06:57:02