如何用逗号(,)从varchar中获得总和

时间:2014-11-20 00:46:50

标签: mysql

我想从逗号

获取varchar的总和

这是我的示例表,注意:price = varchar

   +-------+
   | price |
   +-------+
   | 4,500 |
   | 1,500 |
   +-------+

我的输出和查询是:

Select sum(cast(replace(price, ',', '.') as decimal(18,2))) 
FROM sample.inventory;

   +-------+
   | price |
   +-------+
   |  6.00 |
   +-------+

我的预期输出应为:

   +-------+
   | price |
   +-------+
   | 6,000 |
   +-------+

1 个答案:

答案 0 :(得分:1)

MySQL会自动为你输出字符串数字。

SELECT SUM(replace(price, ',', ''))
FROM sample.inventory

DEMO

但是,你不应该存储这样的数字......

我会将价格列中的所有逗号替换为空字符串,以使其成为常规数字,然后更改您的表格。

ALTER TABLE sample.inventory
    MODIFY price INTEGER

编辑:

如果你必须在结果中有逗号(即使你不应该),那么只需用FORMAT()

包裹它。
SELECT FORMAT(SUM(replace(price, ',', '')), 0)
FROM sample.inventory

FORMATTED DEMO