SQL排序方法有:
ROW_NUMBER()函數:ROW_NUMBER()函數作用就是將SELECT查詢到的數據進行排序,每一條數據加一個序號,他不能用做于數據的排名,一般多用于分頁查詢。
select TOP 6 ROW_NUMBER() OVER (ORDER BY GradeName ASC) AS [ROW_NUMBER], GradeNO,GradeName from BasGradeInfoRANK()函數:RANK()函數,顧名思義排名函數,可以對某一個字段進行排名,如果出現相同的,他們的排名是一樣的。
select TOP 6 RANK() OVER (ORDER BY GradeName ASC) AS [RANK], GradeNO,GradeName from BasGradeInfoDENSE_RANK()函數:DENSE_RANK()函數也是排名函數,和RANK()功能相似,也是對字段進行排名,它和RANK()的不同之處,DENSE_RANK()排名是連續的,RANK()是跳躍的排名,一般情況下用的排名函數就是RANK() 。
select TOP 6 DENSE_RANK() OVER (ORDER BY GradeName ASC) AS [DENSE_RANK], GradeNO,GradeName from BasGradeInfoNTILE()函數:NTILE()函數可以對序號進行分組處理,將有序分區中的行分發到指定數目的組中。 各個組有編號,編號從一開始。 對于每一個行,NTILE將返回此行所屬的組的編號。這就相當于將查詢出來的記錄集放到指定長度的數組中,每一個數組元素存放一定數量的記錄。
select NTILE(3) OVER (ORDER BY GradeName ASC) AS [NTILE], GradeNO,GradeName from BasGradeInfo WHERE GradeNO IN('G079','G064','G042','G044','G043','G031')
推薦文章