oracle数据库一张表中  主键是varchar2类型的,有十一行数据。一次为:1,2,3,4,5,6,7,8,9,10,11.
我用max(varchar2)去找最大的却找出的是9,为什么不是11,或者10。请大鸟帮忙解惑。

解决方案 »

  1.   

    SELECT MAX(TO_NUMBER(FIELD)) FROM TB 
    字符型的,要转成数字型的。
      

  2.   

    有没有学过C语言?可以参考ASCII码表中的各个字符对应的值
    http://www.weste.net/tools/ASCII.asp参考ASCII码表可以加入字符进行处理比如
    1,2,3,4,5,6,7,8,9,10,11,a,b,z等,然后看看结果是什么你就明白了。
      

  3.   

    如果有可能不全是数字,可以max(rpad(字段, 10))