Chr*_*ann 3 mysql string floating-point
在MySQL表中,我有一个VARCHAR具有不同值的列,可以表示String-,Integer-,Float-,Whatever-Values.这些值作为特定于语言的字符串写入数据库,这意味着浮点值123.45可以像"123,45"德语一样写成字符串(使用VB.Net ...)
因为我需要同一组中浮点值的平均值:如何将这样的字符串转换为FLOATMySQL内的?只需AVG(CONVERT(value, DECIMAL))将无法正常工作(返回99.00000),转换FLOAT是不可能的.
Charset是utf8,Collation是utf8_general_ci.
样品表:
id | value | group
1 | 122,45 | 1
2 | 66,34 | 1
3 | blabla | 2
4 | 109,21 | 1
5 | bababa | 2
Run Code Online (Sandbox Code Playgroud)
目标:某些事情SELECT AVG(CONVERT(value, DECIMAL)) FROM table WHERE (group=1)应该导致99.333333,而不是99.
有任何想法吗?
克里斯托夫
PS.:我没有做那个数据库布局......
你可以试试
SELECT AVG(CONVERT(
REPLACE(REPLACE(value, '.', ''), ',', '.'),
DECIMAL(10,2)))
FROM `table`
WHERE `group`=1
Run Code Online (Sandbox Code Playgroud)