今天使用MIN方法查找N条数据中的最小值,这三条数据分别是,750,900,1000,可是结果为什么最小值不是750,而是1000呢 ?,我把1000改成2000,最小值就变成2000了,请问谁能帮忙解释下这是什么原因...以前没遇到过这种问题- -郁闷

解决方案 »

  1.   


    如果该字段是字符型的,那么比较的时候首先会比较首字符1<7<9你用order by 试试就知道
      

  2.   

    我看是数据类型不对,这个结果推断你的数据类型应该是字符串类型
    数字类型的结果应该是750
    可以这样
    select min(cast(字段) as numeric)) as xx
    from tb
    where isnumeric(字段)=1
      

  3.   


    select min(cast(col) as int) as col from  tbl where .....是不是这样 ?不过提示错误阿
      

  4.   

    转换类型,然后再使用min,例如SQL SERVER的语句是:select min(cast(col as int)) from tb
      

  5.   

    select min(col * 1) from tb where isnumeric(col)=1
      

  6.   

    晕,这字段其他值还有字符存在,这种情况下怎么转 ?我要MIN的数据没有字符,不过其他行的数据存在字符,这种情况下能转么 ?
      

  7.   

    字段是varchar,9楼确实好用,谢谢大家帮忙,结贴~
      

  8.   


    SELECT MAX( CAST( `col ` AS SIGNED ) )
    FROM `table`
    WHERE 1这样行