-- ROW_NUMBER()
-- 依照指定的欄位「排序」,逐筆加上序號,例:
-- SerialNo  Field_Name
-- 1         ab
-- 2         ab
-- 3         cd
-- 4         ef
SELECT ROW_NUMBER() OVER( ORDER BY [Field_Name]) AS SerialNo, *
FROM [Table_Name]

-- RANK()
-- 依照指定的欄位「排名」,遇到不同資料時將以「該筆序號」為新排名,例:
-- SerialNo  Field_Name
-- 1         ab
-- 1         ab
-- 3         cd
-- 4         ef
SELECT RANK() OVER( ORDER BY [Field_Name]) AS SerialNo, *
FROM [Table_Name]

-- DENSE_RANK()
-- 依照指定的欄位「排名」,遇到不同資料時將以「下一排名」為新排名,例:
-- SerialNo  Field_Name
-- 1         ab
-- 1         ab
-- 2         cd
-- 3         ef
SELECT DENSE_RANK() OVER( ORDER BY [Field_Name]) AS SerialNo, *
FROM [Table_Name]

arrow
arrow
    文章標籤
    T-SQL MS-SQL
    全站熱搜

    Aixo 發表在 痞客邦 留言(0) 人氣()