在SELECT()中使用带有CHAR内容的MIN的SQL

时间:2012-04-17 14:20:27

标签: mysql database

我有以下数据(字段varchar(55)):

123,00
212,11
1.212,00

使用

SELECT MIN(FIELD) FROM XYZ

我得到“1.212,00”。这对我来说是错误的,但对MySQL来说并没有错。 我需要以下内容:123,00。

如何在不更改字段类型的情况下执行此操作?

TIA Matt

2 个答案:

答案 0 :(得分:1)

您应将{char}值cast设为数值。

select min(
              CAST( replace(
                      replace ( FIELD, '.', '' ),
                      ',', '.'
                    )
                   AS DECIMAL(5,2))
           )  ...

答案 1 :(得分:0)

使用CastConvert

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