-- 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]