2011-07-07 834 views
11

Me gustaría saber si hay una forma de obtener un separador de miles en una consulta SQL.MYSQL - Separador de miles

Como soy un poco perezoso, quiero construir una solicitud que pueda me permitirá copiar/pegar el resultado a mi jefe sin añadir este separador: D

La solicitud es el siguiente:

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 

en la actualidad, el resultado es (mesa con ';' separador, lo siento, no consiguen hacer una mesa con este editor :():

Customer;Nb bookings;Total (€);PDM 

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

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

lo que yo quiero es un resultado así:

Customer;Nb bookings;Total (€);PDM 

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

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

¿Hay una manera de hacerlo?

gracias,

B

Respuesta

19

no sé cómo hacerlo con un espacio, pero el estándar (con un punto o una coma [Alemania es decir]) separación se puede lograr con FORMAT().

Tener un vistazo a la 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

Gracias, he conseguido hacer lo que quería con que el uso de un reemplazo (..., ' '''). Gracias ! –

Cuestiones relacionadas