麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

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

SqlServer 2005 T-SQL Query 學習筆記(3)

2024-08-31 01:01:29
字體:
來源:轉載
供稿:網友

AD HOC PAGING:

就是指用頁面的序號和頁面的大小請求一個單獨的頁面。下面是例子。

DECLARE @pagesize AS INT, @pagenum AS INT;SET @pagesize = 5;SET @pagenum = 2;WITH SalesCTE AS( SELECT ROW_NUMBER() OVER(ORDER BY qty, empid) AS rownum, empid, mgrid, qty FROM dbo.Sales)SELECT rownum, empid, mgrid, qtyFROM SalesCTEWHERE rownum > @pagesize * (@pagenum-1) AND rownum <= @pagesize * @pagenumORDER BY rownum;
 說明:在上個例子中,其實SQL只審視了10行(2*5),也就是說,查看N頁的話,SQL只查到N的頁的數據,N頁后面的數據一概不查看。 另外,每當移動一頁,都會把這頁放進緩存里,因此每次查詢,就是邏輯查詢(緩存)+物理查詢的過程。物理查詢只需要查詢新請求的頁即可,其他全部在緩存里執行,這樣大大加快了查詢速度。  

MULTIPAGE ACCESS:

如果結果集不是很大,而且分了多個請求頁面,請求也不向前移動,那么這是一個好的方案:首先在一個表里使用ROW_NUMBER具體化所有的頁,然后創建一個群集索引。下面是例子。

 

首先創建按ROW_NUMBER把列編好,

 

SELECT ROW_NUMBER() OVER(ORDER BY qty, empid) AS rownum, empid, mgrid, qty INTO #SalesRN FROM dbo.Sales;CREATE UNIQUE CLUSTERED INDEX idx_rn ON #SalesRN(rownum);


 

然后直接按ROWNUM查詢,

DECLARE @pagesize AS INT, @pagenum AS INT; SET @pagesize = 5; SET @pagenum = 2; SELECT rownum, empid, mgrid, qty FROM #SalesRN WHERE rownum BETWEEN @pagesize * (@pagenum-1) + 1 AND @pagesize * @pagenum ORDER BY rownum;


 

RANK & DENSE RANK

這2個函數和ROW_NUMBER的區別是:ROW_NUMBER在ORDER BY的條件里有重復行存在的話,是把這些重復行也按INDEX排列的,但是RANK和DENSE RANK總是確定的,即只要是ORDER BY重復的行,他們是統一INDEX的。

 

RANK和DENSE_RANK的區別是,RANK是如果上級的INDEX和下級的INDEX有可能不是+1關系,是按下級真正處于列里的位置進行INDEX,而DENSE_RANK是按照跟上級的INDEX+1的關系進行的編碼。

 

比如:

SELECT empid, qty, RANK() OVER(ORDER BY qty) AS rnk, DENSE_RANK() OVER(ORDER BY qty) AS drnk FROM dbo.Sales ORDER BY qty; 


NTILE

NTILE的用法和其他的RANK函數一樣,只不過它可以傳入一個參數,用來決定最大的INDEX是多少:它會按行數進行除法,然后平均分配行數進行INDEX的標示。

比如,如果有11列,那么首先11/3=3,3列一組作為一個INDEX,然后,11%3=2,這2列會分別加在前面的2組上。

比如,

SELECT empid, qty, CASE NTILE(3) OVER(ORDER BY qty, empid) WHEN 1 THEN 'low' WHEN 2 THEN 'medium' WHEN 3 THEN 'high' END AS lvlFROM dbo.SalesORDER BY qty, empid;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 91精品久久久久久久 | 国产成人自拍小视频 | 国产自在线 | japan护士性xxxⅹhd | 羞羞视频免费网站日本动漫 | 成人午夜免费在线观看 | 国产在线观看一区二区三区 | 免费网站看v片在线a | 操你逼| 欧美无限资源 | 国产亚洲精品综合一区91555 | 国产精品99一区二区 | 久草在线免费资源站 | 久久蜜桃精品一区二区三区综合网 | av在线等 | 久久久aa | 免费欧美精品 | 成人精品一区二区 | 国产亚洲精品久久久久久网站 | 伦一区二区三区中文字幕v亚洲 | 91精品国产九九九久久久亚洲 | 毛片大全免费 | 3xxx| 国产一级免费视频 | www.91pron| 国产在线免 | 国产一区二区三区四区波多野结衣 | 性欧美性欧美 | 久久第四色 | 成人福利视频在线 | 免费a级毛片大学生免费观看 | 三人弄娇妻高潮3p视频 | 色污视频 | 国产成人高潮免费观看精品 | 最新午夜综合福利视频 | 亚洲一区二区三区日本久久九 | 国产在线a| 国产精品美女久久久久久不卡 | 成人福利视频在 | av在线试看 | 中文字幕在线视频网站 |