現在一般用的比較多的資料庫,應該是oracle,mssql(t sql),mysql,但是他們並沒有統一的標準來實現分頁查詢,也就是沒有統一的sql標準,所以他們三個方法各不同給編碼人員造成了很大的不便。先總結一下,與大家共享!
mysql 是最簡單的,就是使用limit進行查詢。例如:select * from tmp_table limit 10,20;也就是從tmp_table表中查詢(10,20)之間的元組。
oracle 也基本上實現了這種方法,但是形式卻有所不同。例如:select * from tmp_table where rownum>=10 and rownum<=20;也就是從tmp_table表中查詢(10,20)之間的元組。
mssql(t sql)只有top,也就是取出乙個表中的頭部的n條元組,但是沒有直接可以取出n到m之間的資料的方法,所以這裡要自己開發。例如上面是實現了每頁10個資料,然後取出(10,20)之間的資料(也就是第二頁),mssql這麼實現:
select * from
(
select top 10 * from (
select top 20 * from tmp_table order by id
) order by id
desc
)order by id asc;
其實這裡原理應該是比較簡單的,因為我們要取出(10,20)之間的元組,先取出前20條,然後降序取出前10條,然後公升序取出全部的,也就實現了公升序取出(10,20)元組了。
顯然,這也是因為sql的標準並不是很嚴格的緣故吧,所以很多的資料庫的實現方式都不同,但是經過我們對sql標準的學習,我們應該是可以總結出相同的方法的。
資料庫查詢結果分頁顯示思路
資料庫查詢結果分頁顯示思路,通過計算result set指標位置實現分頁顯示 設定頁面顯示數量 int pagesize 獲取要顯示頁面 int currentpage 需要定義的引數 connection con statement sta resultset rs statement 或者 pr...
資料庫分頁顯示
用的sql server 2012版本。下面都用pageindex表示頁數,pagesize表示一頁包含的記錄。並且下面涉及到具體例子的,設定查詢第2頁,每頁含10條記錄。首先說一下sql server的分頁與mysql的分頁的不同,mysql的分頁直接是用limit pageindex 1 pag...
資料庫查詢分頁。
csdn上推薦的,轉過來的。呵呵!表中主鍵必須為標識列,id int identity 1,1 1.分頁方案一 利用not in和select top分頁 語句形式 select top 頁記錄數量 from 表名 where id not in select top 每頁行數 頁數 1 id fr...