select max(id) from (select top (10*(3-1)) id from dbo.Jap_word order by id) as t
我用这个取前20条记录的ID的最大值,上面代码能成功取到值20,但是为什么我吧order by id去掉就不行了,取值1050,是我的记录总数
所以我不明白为什么这里一定要加上order by id???

解决方案 »

  1.   

    查詢如果不指定order by 
    得到的紀錄順序是無法得到保證的
      

  2.   

    order by id 就是排序 他默认的是降序 也就是从最大开始排到最小。
    你不加的话就是从表中取出20条记录
      

  3.   

    但是我用select top (10*(3-1)) id from dbo.Jap_word order by id
    和select top (10*(3-1)) id from dbo.Jap_word 取前20个ID得到的结果都是一样的啊
    这样得到的顺序的记录都是一样的为什么select max(id) from (select top (10*(3-1)) id from dbo.Jap_word as t 就不行了?