SQL конвертировать с плавающей точкой в ​​запятую varchar с десятичными знаками - PullRequest
3 голосов
/ 18 февраля 2009

У меня есть несколько больших поплавков. Их около 100 миллионов.

Я бы хотел, чтобы этот номер отображался следующим образом: 123 456 789,01234

Я обнаружил, что могу использовать CONVERT, если это тип данных money, но это не дает полного эффекта (оно оставляет некоторые десятичные разряды).

У меня должны быть запятые слева и пять знаков после запятой справа.

Есть ли встроенная функция SQL, чтобы помочь с этим? Или я должен написать пользовательскую функцию?

Спасибо

*** Обновление

  • Я забыл упомянуть, что я просто отображаю их как varchars. Так что после этого нет никаких расчетов.
  • Это выполняется в базе данных SQL, поэтому MySQL и Oracle не будут работать.

Ответы [ 2 ]

5 голосов
/ 18 февраля 2009
DECLARE @f FLOAT

SET @f = 123456789.01234

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

это сократит его до двух десятичных разрядов для форматирования. Вы можете изменить LEN (@f) - 2, чтобы изменить эту настройку.

0 голосов
/ 18 февраля 2009

если вы просто отображаете это как текст, вы можете сделать следующее:

оракул:

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 округляет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...