求前100条记录id字段的最小值(不能用order by,要用min函数),SQL语句怎么写啊。谢谢!

解决方案 »

  1.   

    不用order by 怎么定义前100条记录?
      

  2.   

    select min(id)
    from
    (
      select rn=row_number() over(order by getdate()),* from tb
    ) t
    where rn between 1 and 100
    ?
      

  3.   

    我的意思是用top 100 id取得前100条记录,怎么在这基础上求这100个id中的最小值?
      

  4.   

    /*
    例如数据表:
    id col
    2  a
    4  b
    5  c
    6  d
    8  e
    9  f
    10  h
    17  g
    */
    create table #t (id int identity,rid int,col varchar(10))
    insert into #t select id,col from tablenameselect min(rid) from #t where id>=100
    导入到临时表,然后用临时表的自增列来取前100,这样就不用order by 了。
      

  5.   


    sql2005及以上的版本可以参考3楼,sql2000的需要使用子查询(如果表中没有自增列也可以使用自增列)和临时表来查
      

  6.   

    还是有ORDER BY  哈哈
      

  7.   


    select top 100 min(number) from master..spt_values
      

  8.   

    没有order by的top是没有意义的。select top 100 min(number) from master..spt_values
    select top 100 * from master..spt_values这个结果出现的最小值,并不在下面的top 100中。
      

  9.   


    版主和楼主一样蛋疼 这样求个最小id是没啥意义的,哪怕是随机,也应用个order by 随机函数
      

  10.   

    玩笑的 楼主的要求确实是蛋疼不用ORDER BY就不能排序,让TOP 没有任何意义