2

我有许多值存储为 varchar,其中值以字符串形式存储:

10,000,000.00

我想将此数字转换为双精度以显示:

10000000.00然后将其与该格式的其余值相加

由于这些字段没有类型,因此输入数据的格式可能为:

10000.00这也应该被接受。

我将如何转换非结构化数字。我试过了:

SELECT SUM(CAST(value as DECIMAL(10,2))) FROM meta_bs WHERE bs_id = 361

在上述情况下:

10000000.00变成10.00

请帮忙,谢谢!

4

1 回答 1

3

您可以使用 REPLACE 功能删除逗号:

SELECT SUM(CAST(REPLACE(value, ',', '') as DECIMAL(10,2)))
FROM   meta_bs
WHERE  bs_id = 361

在此处查看小提琴。

于 2013-06-11T09:59:18.030 回答