查詢取n到m行

2021-05-23 06:48:08 字數 1267 閱讀 7135

--具體出處不清楚了,看到論壇上的就收集了

view plaincopy to clipboardprint?

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 

Oracle 中 查詢 從m 行到n行 的 記錄

最近正忙著從sql server 向oracle 轉型,遇到的第乙個常見問題就是 查詢前n 行資料的問題。oracle 中沒有像sql server 中的top n 那樣的關鍵字和用法,萬幸的是 oracle 中有乙個被稱為 偽行號列的 rownum 幫了我的大忙。查詢前n 行資料 select f...

oracle中查詢第m行到第n行的方法

表內容如下 balance accountno 1000 1 1000 2 1000 3 1000 4 1000 5 在oracle資料庫中查詢結果的行號使用偽列rownum表示 從1開始 需要注意rownum是在查詢之後排序之前賦值的。查前2行 select from account where ...

取n到m條記錄的語句

取n到m條記錄的語句1.select topm from tablename where id notin select topn id from tablename 2.select topm into 臨時表 或表變數 from tablename order bycolumnname 將top...