请先明白计算机上的根基知识, 数字和文字是两种不同的表达格式. 整数数字如 1,2, ....99999, 有数字本身的规律, 是作算术运算的个体.
但是文字却是用来作抽像描述, 和数字完全不同, 是由左至右来排列, 计算机会为每个字串有不同的代码表示.  所以 111< 12 < 13 < 2222 < 23 < .... < 9varchar就是可变长度的文字, 当然有上面的结果.

解决方案 »

  1.   

    这里的90可不是90、91、......100里的90,而是“9”,“90”,“112”,“120”,“900”里的90。
    所以,你的语句应该改成:
    select max(convert(int,chengji)) from table.
      

  2.   

    同意XLYTQ的意见,但考虑到chengji可能会带小数点。建议使用
    select max(convert(numeric,chengji)) from table
      

  3.   

    同意up.:)
    简单的总结max,min是字符比大小是逐个字符比较,对于数字当然是比大小了。:)