好象不会呀
create table t1(id int)
insert t1 values(1)
insert t1 values(3)
insert t1 values(4)
insert t1 values(2)create index i_t1 on t1(id)   select id from  t1 order by id desc
id          
----------- 
4
3
2
1(所影响的行数为 4 行)

解决方案 »

  1.   

    select id 
    from table 
    order by cast(id as int) desc呢?
      

  2.   

    对,象大力的强制转换成int型的话绝对冒的问题达
      

  3.   

    补充一下,需要加上这样的where才能产生这样的效果:
    where id = 10101 or id =10100 or id =10099 只要加上有这样的or条件的话,排列顺序就变了!不明白!高人来指点下!
      

  4.   

    to 大力:能不能告诉下你这样为什么就行呢?我的ID字段是bigint类型的!我的SQL:
    select id as [Caption] from DataDict
    where id = 10101 or id =10100 or id =10099
    order by id desc你的SQL:
    select id 
    from DataDict 
    where id = 10101 or id =10100 or id =10099
    order by cast(id as int) desc产生的结果,我的是按升序排列,你的是按降序排列!
      

  5.   

    to 马可:   你的t1表没建索引,把索引按降序排列!然后加个where id =4 or id =3 or id =2试试看?
      

  6.   

    to zjcxc(邹建):我把ID改成INT,NVARCHAR都是这样的!
    我叫几个朋友在他们公司试了也是这样,是什么原因呢?星星们来帮帮忙啊!
      

  7.   

    估计与优化有关。提两点。
    1.你把select ID 改成select * 试一下。
    2.cast(id as int)其实已经不是对ID进行排序了,可以说,这句话影响了优化的过程。
    关注中。
      

  8.   

    to  liweixin(小拇指) :1.select * 也会出这样的问题!
      

  9.   

    to  zhbname:
    不明白!类型变了,成了什么类型?对排序有影响吗?
      

  10.   

    试试sp3http://www.microsoft.com/china/sql/downloads/sp3.asp
      

  11.   

    真是奇怪问题关注 学习
    对,补丁打全试试,要不重装sqlsever试试、、、
      

  12.   

    To WuLoveXue(晕死,又这样) :
      本来,我昨天写完这贴,又有一个“补贴”来的,谁知道,网断了,写好的东东没有发上来。
    晕。
      是这样,“1.你把select ID 改成select * 试一下。”,这里,如果你的表中不只一个ID字段,你再看一下。也就是说,你在表中再加一个无用的字段,来看一下。
      

  13.   

    以前一直没有发现这个问题呢。昨天一看,吓我一大吓,这种事情都有。
    呵呵,果然是BUG,打过补丁三就没事了。
    试试吧,估计可以结贴了。