Re: [問題] 上一頁/下一頁之SQL探討?
※ 引述《tomex (Tomex Ou)》之銘言:
: ASP.NET網頁設計裏,
: 原以為觀看detail資料的下方有個上一頁/下一頁很簡單
: 發現ASP.NET的Paper都是丟所有資料Datable
: 我嫌這樣資料量太大(畢竟只有1筆而己)
: 改用手寫下sql方式。
: 以為多下兩道大於或小於該key值的sql就好
: 但是考量此上/下頁的順序,
: 是根據前頁資料列表的排序規則(可能多欄排序)
: 細想之下,發現真的不簡單...
: 因為sql表中的資料並不一定連續。
: 請問該如何在不查詢所有資料下
: 得到指定筆項目的上/下筆資料呢?
: 難道最終仍是得把所有資料取出嗎?
: 不甘心呀!!
可以將上一頁的排序規則Keep到下一頁 存入ViewState中
之後Detail Page查的時候 依照之前的排序取出
SQL 2005前 取範圍的資料的方法
Select * FROM (Select Top 40000 * from Table Order by 排序欄位 ) A where Not
Exists ( Select * From (Select top 20000 id from Table Order by 排序欄位
) B where A.id=B.id )
SQL 2005後
SELECT * FROM (
SELECT *,ROW_NUMBER() OVER (ORDER BY 排序欄位 DESC) AS RowNumber
FROM Table ) T
WHERE T.RowNumber BETWEEN 20000 AND 40000
第一段的速度較快...Row_number()比較慢
如果你有用LINQ 那又是另外的語法了...
--
不知道我是不是有理解錯誤......
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.204.28.55
推
06/20 09:47, , 1F
06/20 09:47, 1F
推
06/20 09:48, , 2F
06/20 09:48, 2F
推
06/20 09:48, , 3F
06/20 09:48, 3F
推
06/20 18:33, , 4F
06/20 18:33, 4F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 4 篇):
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章