select to_number(salary) from table_name odery by to_number(salary);  

解决方案 »

  1.   

    原因在于数据类型是varchar导致这样的排序结果,order by to_number(salary)即可。同意楼上
      

  2.   

    为何要使用varchar来存放数字呢?
    造成不必要的类型转换问题。------------------------
    |                      |
    |   相逢何必曾相识     |
    |                      |
    ------------------------
      

  3.   

    是啊,为什么要用varchar的字段来存放数字呢?
      

  4.   

    我刚刚也建了一帐类似的表,并插入类似的数据,但我的排序结果是正确的,并不需要order by to_number(salary)
      

  5.   

    select salary from table_name odery by to_number(salary);
      

  6.   

    原因乱在“空字符”,删除左右字符即可:
    select salary from table_name odery by ltrim(rtrim(salary));还是建议阁下把字段改为number类型吧。