RANK() 這個 function 和之前介紹過的 ROW_NUMBER() 不論是用法或是效果上都是一樣的(請按此連到 ROW_NUMBER() 文章),所以此處就不介紹用法了。不過雖然用法和效果一樣,但是 RANK() 在為欄位做排序的值和 ROW_NUMBER() 就有些不同了。
 
當遇到相同的欄位值時,ROW_NUMBER() 還是會一路從1、2、3、4…這樣排下去,但是 RANK() 則是會把相同的欄位編成相同排序值,然後下個不同的值則跳號過去,結果就會像1、2、2、4…這樣。舉例來說:
 
以下為用 ROW_NUMBER() 的結果
   
分數排名
901
852
853
804

 
若是改用 RANK() 則是
 
分數排名
901
852
852
804
 
因此如果有需要做這種名次計算與排序時,RANK() 這個方法會比 ROW_NUMBER() 更加的適合!
文章標籤
全站熱搜
創作者介紹
創作者 大笨鳥 的頭像
大笨鳥

大笨鳥的私房菜

大笨鳥 發表在 痞客邦 留言(0) 人氣(321)