MYSQL Query - использовать формат без запятых - PullRequest
7 голосов
/ 15 декабря 2011

Я пытаюсь использовать формат в запросе SQL для соответствия пакету отчетов. У меня есть числа, которые мне нужно показать как валюту с двумя десятичными знаками, поэтому я использую команду форматирования для этого. Проблема в том, что формат также вводит запятую для разделения тысяч, и функция суммирования пакета отчетов не может справиться с этим, поэтому обрабатывает отформатированное числовое значение как текст и не добавляет его.

SELECT customers.name AS "customers name", FORMAT(contracts.charge,2) AS "contracts charge" 
FROM customers
ORDER BY customers.name

(фактический запрос намного сложнее, но это важная часть)

Чтобы объяснить более подробно: -

Если числовое значение равно 123.1, форматированный вывод будет 123.10, что работает. Если числовое значение равно 1234,1, форматированный вывод - 1234,10, который не

Мне нужно найти способ убедить запрос вывести 1234.10

Большое спасибо

Ответы [ 4 ]

15 голосов
/ 15 декабря 2011

Вы можете просто:

REPLACE(FORMAT(contracts.charge, 2), ',', '')
7 голосов
/ 16 мая 2014

Эта запись , кажется, имеет более чистое решение:

Просто используйте ROUND, это числовая функция. FORMAT является строковой функцией

3 голосов
/ 15 декабря 2011

Возможным обходным решением будет замена запятой после формата:

REPLACE(FORMAT(contracts.charge,2),',','') AS "contracts charge"
0 голосов
/ 30 января 2014

Инвертир, в десятичные. в милях ЗАМЕНА (ЗАМЕНА (ЗАМЕНА (ФОРМАТ (contract.charge, 2), ',', '-'), '.', ','), '-', '.') AS contract_charge

...