close

SQL Server ROW_NUMBER() DENSE_RANK()

 

建立測試內容

create table tmp ( id integer , name varchar(20) , source int)

insert into tmp values ( 1 , '大明' , 80)

insert into tmp values ( 2 , '小明' , 90)

insert into tmp values ( 3 , '大華' , 86)

insert into tmp values ( 4 , '小華' , 86)

insert into tmp values ( 5 , '老王' , 84)

insert into tmp values ( 6 , '小王' , 83)

insert into tmp values ( 7 , '小何' , 83)

insert into tmp values ( 8 , '小張' , 86)


select * , ROW_NUMBER() over(order by source) as sort

from tmp order by sort

clip_image002 (圖一)  => clip_image004 (圖二)


select * , DENSE_RANK() over(order by source) as sort

from tmp order by sort

clip_image006 (圖三)  => clip_image008 (圖四)


(圖一) (圖四) 紅框框起來的範圍做比較,可以看出來DENSE_RANK()函式會去除重覆值,但ROW_NUMBER()函式並不會去除重覆的排名。

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Jiang Ying-Fu 的頭像
    Jiang Ying-Fu

    Jiang Ying-Fu的部落格

    Jiang Ying-Fu 發表在 痞客邦 留言(0) 人氣()