有一个表的字段是userid,在dbgrid显示没有排序的情况是按照下面的顺序。
userid   1001
1002
1003
401
402
403
501
502
503
601
602
603如果:sql语句中用order by  desc排序后 数据是如下:
userid
603
602
601
503
502
501
403
402
401
1003
1002
1001我想把数据排序成如下应该怎么办?
401
402
403
401
402
403
501
502
503
601
602
603
1001
1002
1003

解决方案 »

  1.   

    ORDER BY CAST(userid AS INT)
      

  2.   

    ORDER BY CAST(userid AS INT) asc
      

  3.   

    order by len (useid)
    + 升/降
    升序还是降序你自己试试
      

  4.   

    估计你的UserID是字符串型的,如果能够把该字段的数据类型变成Integer型,那就不会有此问题了。如果不能,这样写SQL语句:
    SELECT * FROM YourTable
      ORDER BY CONVERT(Int, UserID);Convert是MSSQL的函数,如果是Oracle或其他数据库系统,应该也有对应的函数吧。
      

  5.   

    谢谢!!!用 SELECT   *   FROM   YourTable 
        ORDER   BY   CONVERT(Int,   UserID); 
    可以解决。