SQL Server SUM函数结果为科学计数法,如何转为整数?
解决SUM查询结果科学计数法转整数问题
当SUM计算结果以科学计数法(如6.2378057E7)显示时,可通过数据库内置的类型转换或格式化函数将其转为常规整数格式,以下是主流数据库的实现方案:
MySQL/MariaDB
- 直接转换为无符号整数(截断小数部分):
SELECT CAST(Sum(listsize) AS UNSIGNED), financial_year FROM population_mapping WHERE financial_year > '2018' GROUP BY financial_year; - 格式化输出为整数(自动四舍五入小数部分):
SELECT FORMAT(Sum(listsize), 0), financial_year FROM population_mapping WHERE financial_year > '2018' GROUP BY financial_year;
PostgreSQL
- 转换为大整数类型:
SELECT CAST(Sum(listsize) AS BIGINT), financial_year FROM population_mapping WHERE financial_year > '2018' GROUP BY financial_year; - 自定义格式输出整数:
SELECT TO_CHAR(Sum(listsize), 'FM999999999'), financial_year FROM population_mapping WHERE financial_year > '2018' GROUP BY financial_year;
SQL Server
- 转换为大整数类型:
SELECT CONVERT(BIGINT, Sum(listsize)), financial_year FROM population_mapping WHERE financial_year > '2018' GROUP BY financial_year; - 格式化输出为无科学计数法的整数:
SELECT FORMAT(Sum(listsize), 'N0'), financial_year FROM population_mapping WHERE financial_year > '2018' GROUP BY financial_year;
补充说明
如果listsize本身是整数类型,SUM结果应为整数,出现科学计数法通常是数据库客户端的显示设置导致,也可直接调整客户端的数值显示规则,禁用科学计数法格式。
内容的提问来源于stack exchange,提问作者Chelsea A
相关产品推荐
相关产品推荐

