国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

SQL server 2005的簡單分頁程序

2024-08-31 00:51:08
字體:
來源:轉載
供稿:網友

SQL2005增加了不少新特性,其中NTILE和ROW_NUMER使得我們不再為SQL如何靈活方便的分頁傷腦筋了(不必再羨慕Oracle等數據庫了)。
  下面就是一個很簡單的分頁查詢語句: DECLARE @rows_per_page AS INTEGER
DECLARE @current_page AS INTEGER
DECLARE @total_pages AS INTEGER

-- 設置每頁的行數
SET @rows_per_page = 20
-- 設置要顯示的頁號(從1開始)
SET @current_page = 2
-- 計算總頁數
SELECT @total_pages = COUNT(*) / @rows_per_page
FROM testtable;

-- 列出指定頁的內容
WITH t AS
(
  SELECT NTILE(@total_pages) OVER(ORDER BY id) AS page_number, *
  FROM testtable
)
SELECT * from t
WHERE page_number = @current_page   程序簡單到可以不用說明的程度。
  我們可以利用上述簡單的語句,變化排序條件和查詢表,就可以做出一個很通用的分頁查詢的存儲過程或查詢語句了。

  同樣的,使用ROW_NUMBER也可以做到分頁查詢: DECLARE @rows_per_page AS INTEGER
DECLARE @current_page AS INTEGER
DECLARE @start_row_num AS INTEGER

-- 設置每頁的行數
SET @rows_per_page = 20
-- 設置要顯示的頁號(從1開始)
SET @current_page = 2
-- 設置開始行號
SET @start_row_num = (@current_page - 1) * @rows_per_page

WITH t AS
(
  SELECT ROW_NUMBER() OVER(ORDER BY id) AS row_number, *
  FROM testtable
)
SELECT * from t
WHERE row_number BETWEEN @start_row_num AND @start_row_num + @rows_per_page  似乎更簡單的樣子。

  至于哪種效率更高,這需要大家實際測試了。

http://ly4cn.cnblogs.com/archive/2006/07/11/447905.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 澳门| 汉阴县| 克什克腾旗| 沙坪坝区| 于田县| 三明市| 达日县| 江华| 新野县| 鸡西市| 金阳县| 桃园县| 关岭| 张家界市| 西充县| 西平县| 新沂市| 洪洞县| 保亭| 天气| 同江市| 株洲县| 溧水县| 长沙市| 张家港市| 驻马店市| 洪湖市| 和龙市| 广西| 炎陵县| 桦南县| 民和| 资源县| 千阳县| 象州县| 泸溪县| 灵台县| 闽清县| 佛冈县| 佛冈县| 海宁市|