CREATE TABLE #(sid varchar(20) not null,scity VARCHAR(50),sexpenses int)INSERT INTO # values ('A','shanghai',2000)
INSERT INTO # values ('A','beijing',3200)
INSERT INTO # values ('B','shanghai',1200)
INSERT INTO # values ('C','shanghai',259)
INSERT INTO # values ('A','shanghai',1500)
INSERT INTO # values ('A','shanghai',2000)
INSERT INTO # values ('B','beijing',3400)
INSERT INTO # values ('A','shanghai',2000)
INSERT INTO # values ('C','shanghai',400)select identity(int,1,1) id ,* into #tmp from # order by sid
select * from (select id/3 as page,sid,scity,sexpenses from #tmp ) x where page=1
select * from (select id/3 as page,sid,scity,sexpenses from #tmp ) x where page=2
select * from (select id/3 as page,sid,scity,sexpenses from #tmp ) x where page=3

解决方案 »

  1.   

    drop table #
    go
    drop table #tmp
    go
    CREATE TABLE #(sid varchar(20) not null,scity VARCHAR(50),sexpenses int)INSERT INTO # values ('A','shanghai',2000)
    INSERT INTO # values ('A','beijing',3200)
    INSERT INTO # values ('B','shanghai',1200)
    INSERT INTO # values ('C','shanghai',259)
    INSERT INTO # values ('A','shanghai',1500)
    INSERT INTO # values ('A','shanghai',2000)
    INSERT INTO # values ('B','beijing',3400)
    INSERT INTO # values ('A','shanghai',2000)
    INSERT INTO # values ('C','shanghai',400)select identity(int,1,1) id ,* into #tmp from # order by sidselect * from (select (id+2)/3 as page,sid,scity,sexpenses from #tmp ) x where page=1
    select * from (select (id+2)/3 as page,sid,scity,sexpenses from #tmp ) x where page=2
    select * from (select (id+2)/3 as page,sid,scity,sexpenses from #tmp ) x where page=3
    select * from (select (id+2)/3 as page,sid,scity,sexpenses from #tmp ) x where page=4
      

  2.   

    非常感谢hooboo(任逍遥)
    不用临时表能否解决??