MySQL 格式数字,小数位数未知

标签 mysql sql database

在MySQL中,我只想在数字中添加千位分隔符,如1234.23234、242343.345345464、232423.22,并格式化为“1,234.23234”、“242,343.345345464”、“232,423.22”,使用format函数需要指定小数位数,有吗还有其他函数可以格式化小数位数未知的数字吗?对于1234.23234,我不想得到像1234.2323400000或1234.23这样的结果,只想得到1,234.23234。

最佳答案

按照建议,分割字符串,删除尾随零,格式化小数点之前的数字,并考虑到根本不存在小数的可能性,例如

set @a = 1234.56;

select 
case when instr(@a,'.') > 0 then
  concat(
  format(substring_index(@a,'.',1),'###,###,###'),
  '.',
  trim(trailing '0' from substring_index(@a,'.',-1))
  ) 
else
format (@a,'###,###,###')
end formatted

关于MySQL 格式数字,小数位数未知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72137059/

相关文章:

java - 如何在 QueryDSL 中按日期分组?

php - 为数据库定义变量

node.js - Knex 与 Heroku Postgres 连接时出错?

c# - 允许通过 C# 访问安装在 Amazon EC2 上的 MySQL 服务器

sql - 如何知道有多少个 OR 条件被满足?

java - 带有java字符串数组的Mysql存储过程

sql - 为什么当我在 sql 中使用 <> 时它没有得到空值

mysql - 如何逆转远程mySQL访问?

php - 更新数据按钮

mysql - 我应该为我的 CentOS 服务器安装哪个 mysql 版本?