你的id字段是字符类型,排序当然没错
而你要求的是按数字排序,所以用一个数据类型转换就行了.adoquery1.sql.add('select * from TABLE where id='''+Form_main.id+'''and id is not null ORDER BY cast(PORT_id as int) ')

解决方案 »

  1.   

    以上是用DELPHI写的代码,如果是C++BULDER如下呵,,
     adoquery1->sql->add("select * from TABLE where id='''+Form_main.id+'''and id is not null ORDER BY cast(PORT_id as int) ")
      

  2.   

    adoquery1.sql.add('select * from TABLE where id='''+Form_main.id+'''and id is not null ORDER BY cast(isnull(PORT_id,99999999) as int) ')
      

  3.   

    adoquery1.sql.add('select * from TABLE where id='''+Form_main.id+'''and id is not null ORDER BY right('0000000000'+cast(PORT_id as varchar),10) ')