日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
NTILE函數(shù)在SQL Server 2000中的實現(xiàn)方法

各個組有編號,編號從一開始。對于每一個行,NTILE函數(shù)將返回此行所屬的組的編號。如果分區(qū)的行數(shù)不能被整數(shù)整除,則將導致一個成員有兩種大小不同的組。按照OVER子句指定的順序,較大的組排在較小的組前面。用NTILE函數(shù)計算排名值與其它方法一樣簡單(分區(qū)排名方案和排名值效率分析【圖文+測試代碼】),唯一的區(qū)別在于,NTILE函數(shù)接受一個表示組的數(shù)量的參數(shù),而其它的方法是沒有參數(shù)的。

發(fā)展壯大離不開廣大客戶長期以來的信賴與支持,我們將始終秉承“誠信為本、服務至上”的服務理念,堅持“二合一”的優(yōu)良服務模式,真誠服務每家企業(yè),認真做好每個細節(jié),不斷完善自我,成就企業(yè),實現(xiàn)共贏。行業(yè)涉及辦公窗簾等,在成都網站建設公司、成都全網營銷推廣、WAP手機網站、VI設計、軟件開發(fā)等項目上具有豐富的設計經驗。

SQL代碼和效果如下:

 
 
 
 
  1. Code  
  2. ifOBJECT_ID('Sales')isnotnull  
  3. droptableSales;  
  4. createtableSales  
  5. (  
  6. empidvarchar(10)notnullprimarykey,  
  7. qtyintnotnull  
  8. )  
  9. insertintoSales(empid,qty)values('A',300);  
  10. insertintoSales(empid,qty)values('B',100);  
  11. insertintoSales(empid,qty)values('C',200);  
  12. insertintoSales(empid,qty)values('D',200);  
  13. insertintoSales(empid,qty)values('E',250);  
  14. insertintoSales(empid,qty)values('F',300);  
  15. insertintoSales(empid,qty)values('H',250);  
  16. insertintoSales(empid,qty)values('I',250);  
  17. insertintoSales(empid,qty)values('J',100);  
  18. insertintoSales(empid,qty)values('K',200);  
  19. insertintoSales(empid,qty)values('G',100);  
  20. --------------------------------------------------  
  21. selectempid,qty,NTILE(9)over(orderbyqty)astilefromSales 

執(zhí)行結果效果圖:

那么在沒有出現(xiàn)SQLServer2005之前我們又是怎樣做來達到這樣的效果的呢?下面我將給大家介紹兩種方法來達到這個需求:

方法一:首先計算表的行號(排名值),根據(jù)指定的組的數(shù)量得到每組內的記錄數(shù)量。然后利用組號計算公式:(行號-1)/組大小+1,返回每條記錄的組號。

SQL代碼如下:

 
 
 
 
  1. Code  
  2. eclare@numtilesint;  
  3. set@numtiles=9;--組數(shù)  
  4.  
  5. selectempid,qty,CAST((rn-1)/tilesize+1asint)astile  
  6. from(selectempid,qty,rn,1.0*numrows/@numtilesastilesizefrom(selectempid,qty,(selectCOUNT(*)fromSalesasS2whereS2.qty

方法二:首先計算表的行號(排名值),根據(jù)指定的組的數(shù)量得到每組內的記錄數(shù)量。然后利用下面組號計算公式,返回每條記錄的組號。

If(行號<=(組大小+1)*剩余行數(shù))then

組號=(行號-1)/(組大小+1)+1

Else

組號=(行號-剩余行數(shù)-1)/組大小+1

SQL代碼如下:

 
 
 
 
  1. Code  
  2. declare@numtileint;  
  3. set@numtile=9;--組數(shù)  
  4.  
  5. selectempid,qty,rn,  
  6. casewhenrn<=(tilesize+1)*remainder  
  7. then(rn-1)/(tilesize+1)+1  
  8. else(rn-remainder-1)/(tilesize)+1  
  9. endastiles  
  10. from 
  11. (  
  12. selectempid,qty,rn,numrows/@numtileastilesize,numrows%@numtileasremainder  
  13. from 
  14. (  
  15. selectempid,qty,(selectCOUNT(*)fromSalesasS2whereS2.qty
  16. )asD1  
  17. )asD2orderbyqty,empid 

【編輯推薦】

  1. SQL Server 2005商業(yè)智能的10個關鍵特性
  2. 在T-SQL中使用臨時表的注意事項
  3. SQL Server數(shù)據(jù)庫管理常用的SQL和T-SQL語句(1)
  4. 用T-SQL操作面試SQL Server開發(fā)人員(1)
  5. SQL Server 2005中的T-SQL
  6. T-SQL實用例句

    網頁名稱:NTILE函數(shù)在SQL Server 2000中的實現(xiàn)方法
    瀏覽地址:http://www.5511xx.com/article/djeoojs.html