mysql - 如何将 'pre-formatted' 值转换为 float

标签 mysql

我有一个我的 sql View (MY_VIEW),其值已预先格式化

FORMAT(myValue,2,'DE_de') as Value

所以,我有一些值,例如:123,18 ... 10.020,98 等。

但是,当我使用 Sum(Value) 基于 MY_VIEW 执行另一个查询时,它返回错误的值,因为我认为它无法对格式化值执行 SUM 。

所以我需要将值重新转换为 float ,但使用 CAST 但它不起作用:

SUM( CAST(Value AS Decimal(10,2) ))

最佳答案

希望这对您有帮助。

1。调用 REPLACE() 2 次
mysql> SELECT CAST(REPLACE(REPLACE('1.123,45', ",", ""), ".", "") AS DECIMAL(10, 2)) AS converted;
+-----------+
| converted |
+-----------+
| 112345.00 |
+-----------+

2。使用UDF(用户定义函数)

根据How to do a regular expression replace in MySQL? ,你可以PREG_REPLACE()替换“,”或“.”在https://github.com/hholzgra/mysql-udf-regexp之后使用正则表达式立即转换为“”已安装到您的 MySQL 服务器中

关于mysql - 如何将 'pre-formatted' 值转换为 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20214977/

相关文章:

查询中的 PHP 函数

php - Mysql从php脚本插入空白字段,但不在phpmyadmin中插入空白字段?

mysql - 我的 Spark sql 查询或数据帧在哪里执行?

mysql - 将sql中的多个epoch时间一起转换为日期

php - MySQL:如果已使用 INSERT INTO 使用唯一字段,如何执行操作

mysql - 查询返回空值

php - jQuery 连接可排序列表,将订单保存到 MySQL

Java 抛出 "PersistenceException:SQLGrammarException: Could not extract resultset"

MySql 查询嵌套 select 语句

MySQL 错误 1005