MYSQL - разделитель тысяч - PullRequest
16 голосов
/ 07 июля 2011

Я хотел бы знать, есть ли способ получить разделитель тысяч в запросе SQL?

Поскольку я немного ленив, я хочу создать запрос, который может позволить мне копировать /вставьте результат моему боссу, не добавляя этот разделитель: D

Запрос выглядит следующим образом:

SELECT  COALESCE(Customer, 'TOTAL') AS "Customer", CONCAT( COUNT( SegmentId ) , ' bookings' ) AS "Nb bookings", CONCAT( REPLACE( SUM( Price ) , '.', ',' ) , ' €' ) AS "Total (€)", CONCAT( ROUND( (
SUM( Price ) / (
SELECT SUM( Price )
FROM my_db
WHERE CreationDate = CURRENT_DATE( )
AND SegmentStatus = "OK" ) *100 ) , 2 ) , ' %'
) AS "PDM"
FROM my_db
WHERE CreationDate = CURRENT_DATE( )
AND SegmentStatus = "OK"
GROUP BY Customer
WITH ROLLUP

В настоящее время результат таков (таблица с разделителем ';', извините, я не сделал 'С этим редактором не получается составить таблицу :():

Customer;Nb bookings;Total (€);PDM

cust_1;20 bookings;20000 €;10,01 %

cust_2;254 bookings;17852,12 €;8,12 %

Что я хочу, так это результат:

Customer;Nb bookings;Total (€);PDM

cust_1;20 bookings;20 000 €;10,01 %

cust_2;254 bookings;17 852,12 €;8,12 %

Есть ли способ сделать это?

Спасибо,

B

1 Ответ

27 голосов
/ 07 июля 2011

Я не знаю, как сделать это с пробелом, но стандартное (с точкой или запятой [германия, т. Е.]) Разделение может быть достигнуто с помощью FORMAT().

Посмотрите на Формат Функция

mysql> SELECT FORMAT(12332.123456, 4);
    -> '12,332.1235'
mysql> SELECT FORMAT(12332.1,4);
    -> '12,332.1000'
mysql> SELECT FORMAT(12332.2,0);
    -> '12,332'
mysql> SELECT FORMAT(12332.2,2,'de_DE');
    -> '12.332,20'
mysql> SELECT FORMAT(12332.2,2,'pt_BR');
    -> '12332,20'
...