服務熱線
153 8323 9821
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