我有以下数据(字段 varchar(55)):
123,00
212,11
1.212,00
和
SELECT MIN(FIELD) FROM XYZ
我得到“1.212,00”。这对我来说是错误的,但对 MySQL 来说并没有错。我需要以下:123,00。
如何在不更改字段类型的情况下做到这一点?
TIA 马特
您应该将您的 char 值转换为数值。
select min(
CAST( replace(
replace ( FIELD, '.', '' ),
',', '.'
)
AS DECIMAL(5,2))
) ...
使用Cast
或Convert
:
CONVERT() 和 CAST() 函数采用一种类型的值并产生另一种类型的值。
SELECT MIN(CAST(Field AS DECIMAL(10,2))) FROM XYZ
http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html#function_cast