2011-07-07 3 views
11

Chciałbym wiedzieć, czy istnieje sposób na uzyskanie tysiąca separatora w zapytaniu SQL?MYSQL - Separator tysięcy separatorów

Jak jestem trochę leniwy, chcę zbudować wniosek, który może pozwolić mi skopiować/wkleić wynik do mojego szefa, nie dodając ten separator: D

Żądanie wygląda następująco:

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 

Obecnie, wynikiem jest (tabela z „;” separator, przepraszam, że nie udało się zrobić tabelę z tego edytora :():

Customer;Nb bookings;Total (€);PDM 

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

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

Co chcę jest wynikiem tak:

Customer;Nb bookings;Total (€);PDM 

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

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

Czy jest jakiś sposób na zrobienie tego?

podziękować

B

Odpowiedz

19

Nie wiem, jak to zrobić z miejsca, ale średnia (z punktu lub przecinkiem [Niemczech tzn]) separacja może zostać osiągnięty z FORMAT().

Wystarczy popatrzeć na 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

Dziękuję, udało mi się zrobić to, co chciałem z tym przy użyciu REPLACE (..., ' '''). Dzięki ! –