我想从逗号
获取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 |
+-------+
答案 0 :(得分:1)
MySQL会自动为你输出字符串数字。
SELECT SUM(replace(price, ',', ''))
FROM sample.inventory
但是,你不应该存储这样的数字......
我会将价格列中的所有逗号替换为空字符串,以使其成为常规数字,然后更改您的表格。
ALTER TABLE sample.inventory
MODIFY price INTEGER
如果你必须在结果中有逗号(即使你不应该),那么只需用FORMAT()
SELECT FORMAT(SUM(replace(price, ',', '')), 0)
FROM sample.inventory