SQL将float转换为带小数的逗号varchar

标签 sql sql-server floating-point

我有几个有点大的花车。他们大约有 1 亿。

我希望这个号码显示如下 123,456,789.01234

我发现如果它是货币数据类型我可以使用 CONVERT 但这并不能解决所有问题(它会保留一些小数位)。

我必须在左边有逗号,在右边有五个小数位。

是否有任何内置的 SQL 函数可以帮助解决这个问题?还是我必须编写自定义函数?

谢谢

*** 更新

  • 我忘了说我只是将它们显示为 varchars。所以这之后就没有任何计算了。
  • 这是在 SQL 数据库上运行,因此 MySQL 和 Oracle 无法运行。

最佳答案

DECLARE @f FLOAT

SET @f = 123456789.01234

SELECT  LEFT('$' + CONVERT(VARCHAR(20), CAST(@f AS MONEY), 1), LEN(@f) - 2)

这会将其截断至小数点后两位以进行格式化。您可以更改 LEN(@f) - 2 来修改此设置。

关于SQL将float转换为带小数的逗号varchar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/558942/

相关文章:

sql - 为每个不同的外键值选择最新的行

c# - 无法从存储过程中获取数据

javascript - 对于 float a和b,在没有上溢、下溢和NaN的情况下,a-b>0总是等于a>b吗?

c - float 或重新解释为 UINT 的 float 之间比较的等效性

sql - 与 Oracle 的 CONNECT BY ... START WITH 等效的 PostgreSQL 语法是什么?

sql - 如何在 sql server 2008 中进行双循环

sql-server - SQLServer : Dynamic sql raise exception Could not find stored procedure

sql-server - 在已有 SQL Server 和 BizTalk 时使用 MSMQ

c++ - sprintf(buf, "%.20g", x)//buf应该多大?

java - 从 Java 对象类型到 SQL 类型的标准映射在哪里定义?