1.
select top m * from tablename where id not in (select top n id from tablename order by id asc/*|desc*/)
2.
select top m * into 臨時表(或表變量) from tablename order by columnname -- 將top m筆插入到臨時表
set rowcount n --只取n條結果
select * from 表變量 order by columnname desc
3.
select top n * from
(select top m * from tablename order by columnname) a
order by columnname desc
4.如果tablename裏沒有其他identity列,那麽:
先生成壹個序列,存儲在壹臨時表中.
select identity(int) id0,* into #temp from tablename
取n到m條的語句為:
select * from #temp where id0 > =n and id0 <= m
如果妳在執行select identity(int) id0,* into #temp from tablename這條語句的時候報錯,那是因為妳的DB中間的select into/bulkcopy屬性沒有打開要先執行:
exec sp_dboption 妳的DB名字,'select into/bulkcopy',true
5.如果表裏有identity屬性,那麽簡單:
select * from tablename where identity_col between n and m
6.SQL2005開始.可以使用row_number() over()生成行號
;with cte as
(
select id0=row_number() over(order by id),* from tablename
)
select * from cte where id0 between n to m