建了一个taslist表主键为tasknum int ,stunum int 两个都是外键,另有taskcode varchar(500),当使用select tasknum,taskcode  from tasklist order by tasknum 时出来的纪录集确是乱的tasknum,其中stunum都一样
这是数据库哪里设置错了还是本身问题

解决方案 »

  1.   

    lz给出数据或者截图。按说应该不会。order by 还是很稳定的。
      

  2.   

    你真的确定tasknum数据类型是int?
      

  3.   

    从数据的排序看来,很明显你的tasknum是字符型的
      

  4.   

    改字段类型反而是更好的,因为从性能来说,字符串没有数值型好,而且除非你要存001这类的数据,不然用int那些更省空间,速度更快,排序更简单
      

  5.   

    order by convert(int,tasknum ) ,排序的时候,转下类型
      

  6.   

    是字符型的tasksum,如果是整形就不会这样了
      

  7.   

    其实如果数据量不大的话,字符串也没有问题。
    集体你可以查询执行计划的效率,我之前测试20W的数据, int与char范围1-10位数字效率是相当。select cast(tasknum as int )tasknum,taskcode  from tasklist order by tasknum