sql分頁查詢語句 三種主流資料庫

2021-06-07 21:38:13 字數 1745 閱讀 8528

oracle

因此,如果不介意在體系中使用hint的話,可以將分頁的查詢語句改寫為:

select /*+ first_rows */ * from (

select a.*, rownum rn

from (select * from table_name) a

where rownum <= 40 )

where rn >= 21

sql server

關於分頁 sql 的資料許多,有的使用儲存過程,有的使用游標。本人不喜歡使用游標,我覺得它耗資、效率低;使用儲存過程是個不錯的選擇,因為儲存過程是顛末預編譯的,執行效率高,也更靈活。先看看單條 sql 語句的分頁 sql 吧。

方法1:

適用於 sql server 2000/2005

select top 頁大小 * from table1 where id not in ( select top 頁大小*(頁數-1) id from table1 order by id ) order by id

方法2:

適用於 sql server 2000/2005

select top 頁大小 * from table1 where id > ( select isnull(max(id),0) from ( select top 頁大小*(頁數-1) id from table1 order by id ) a ) order by id

方法3:

適用於 sql server 2005

select top 頁大小 * from ( select row_number() over (order by id) as rownumber,* from table1 ) a where rownumber > 頁大小*(頁數-1)

說明,頁大小:每頁的行數;頁數:第幾頁。使用時,請把「頁大小」以及「頁大小*(頁數-1)」替換成數碼。

mysql

select * from tt limit 1,20

select * from tt limit 21,30

/*如果你是幾千上萬資料,就直接使用mysql自帶的函式 limit的普通用法就ok了,如果是100萬以上的資料,可能就要講方法了,下面我們來做個百萬級資料的分頁查詢語句.

mysql> select * from news where id>=(select id from news limit 490000,1) limit 10;    sec  //很 明顯,這 種方式勝出 .

mysql> select * from news limit 490000,10  sec;

以下的文章主要介紹的是mysql分頁的實際操作方案,其實關於實現mysql分頁的最簡單的方法就是利用利用mysql資料庫的limit函式,limit [offset,] rows可以從mysql資料庫表中第m條記錄開始檢索n條記錄的語句為:

select * from 表名稱 limit m,n  

例如從表sys_option(主鍵為sys_id)中從第10條記錄開始檢索20條記錄,語句如下:

select * from sys_option limit 10,20   

select * from table [查詢條件] order by id limit ?,?

SqlServer 三種分頁查詢語句

先說好吧,查詢的資料排序,有兩個地方 1 分頁前的排序。2 查詢到當前頁資料後的排序 1 先查詢當前頁碼之前的所有資料id select top 當前頁數 1 每頁資料條數 id from 表名 2 再查詢所有資料的前幾條,但是id不在之前查出來的資料中 select top 每頁資料條數 from...

三種資料庫sql分頁查詢

關於sql分頁 今天用到分頁了順便就總結了一下 mysql 資料庫 mysql 中有分頁的關鍵字limit,它可以實現分頁很簡單 select from sys user order by userid limit startno,total startno 是查詢開始的行數,total 是要查詢出...

三種資料庫SQL語句高效分頁

在程式的開發過程中,處理分頁是大家接觸比較頻繁的事件,因為現在軟體基本上都是與資料庫進行掛釣的。但效率又是我們所追求的,如果是像原來那樣把所有滿足條件的記錄全部都選擇出來,再去進行分頁處理,那麼就會多多的浪費掉許多的系統處理時間。為了能夠把效率提高,所以現在我們就只選擇我們需要的資料,減少資料庫的處...