MySQL - 千位分隔符

26

我想知道有没有办法在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个回答

43

我不知道如何在空格中实现,但可以使用 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'

5
谢谢,我使用 REPLACE(..., ',', ' ') 实现了我想要的功能。谢谢! - BMN

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接