select top 5 * from tablename order by newid()

解决方案 »

  1.   

    declare @sql varchar(8000)
    declare @Cnt intset @Cnt = (页数-1)* 5
    set @sql = 'select top 5 * from tablename where id not in (select top '+str(@Cnt)+' id from tablename order by id) order by id 'exec(@sql)
      

  2.   

    create table ta(id int)
    id          
    ----------- 
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16declare @页 int,@记录 int,@a int,@sql varchar(101)
    set @记录=5
    set @页=4---在这里输入页数就行了
    set @a=(@页-1)*@记录
    if @页!>1
    exec('select top '+@记录  +' id from ta ')
    else
    exec('select top '+@记录+' id from ta where id not in(select top '+@a+' id from ta)')
    结果为:
    id          
    ----------- 
    16