2011-07-07 62 views
11

Tôi muốn biết nếu có cách nào để có được một dấu phân tách nghìn trong một truy vấn SQL?MYSQL - Hàng nghìn dấu tách

Như tôi là một chút lười biếng, tôi muốn xây dựng một yêu cầu mà có thể cho phép tôi để sao chép/dán kết quả với sếp của tôi mà không cần thêm dấu phân cách này: D

Yêu cầu trông như thế này:

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 

hiện nay, kết quả là (bảng bằng ';' tách, xin lỗi tôi không quản lý để thực hiện một bảng với trình soạn thảo này :():

Customer;Nb bookings;Total (€);PDM 

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

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

những gì tôi muốn có một kết quả như vậy là:

Customer;Nb bookings;Total (€);PDM 

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

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

Có cách nào để làm như vậy không?

Thank,

B

Trả lời

19

Tôi không biết làm thế nào để làm điều đó với một không gian, nhưng các tiêu chuẩn (với một điểm hoặc một dấu phẩy [Đức ví dụ:]) tách có thể đạt được với FORMAT().

Có một cái nhìn tại 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

Cảm ơn bạn, tôi cố gắng làm những gì tôi muốn với điều đó bằng cách sử dụng REPLACE (..., ' '''). Cảm ơn ! –

Các vấn đề liên quan