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

时间:2009-02-17 22:07:43

标签: sql sql-server floating-point

我有几个漂浮物有点大。他们大约有1亿。

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

我发现如果它是一个货币数据类型,我可以使用CONVERT,但是这并没有完全诀窍(它会留下一些小数位)。

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

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

由于

***更新

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

2 个答案:

答案 0 :(得分:5)

DECLARE @f FLOAT

SET @f = 123456789.01234

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

这会将格式化为两位小数。您可以更改LEN(@f) - 2以修改此设置。

答案 1 :(得分:0)

如果您只是将其显示为文本,则可以执行以下操作:

oracle:

select to_char(123456789.01234,'999,999,999.99999') from dual; => 123,456,789.01234

MySQL:

select format(123456789.01234,5) => 123,456,789.01234<br>

MySQL函数轮次