2011-07-07 170 views
11

我想知道是否有办法在SQL查询中获得千位分隔符?MYSQL - 千位分隔符

因为我有点懒,我想建立可以让我复制/粘贴的结果对我的老板不添加这种分离器的请求: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 % 

有没有办法做到这一点?

谢谢,

回答

19

我不知道如何与一个空间做,但标准(用点或逗号[德国即])分离 - 可以与FORMAT()来实现。

看一看在Format Function

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' 
+3

谢谢你,我能够做到什么,我想与使用REPLACE(..., ' ''')。谢谢 ! –