ROW_NUMBER、RANK()、DENSE_RANK()和OVER的使用


/*以FoodPrice列排序並顯示排序后的行號*/
SELECT ROW_NUMBER() OVER(ORDER BY FoodPrice DESC) AS RowId,* FROM dbo.Food

 

 

ROW_NUMBER()

/*以FoodType分組,然后以FoodPrice排序並顯示所在分組的相應行號*/
SELECT ROW_NUMBER() OVER(PARTITION BY FoodType ORDER BY FoodPrice DESC) AS RowId,* FROM dbo.Food

 

 

RANK()

/*以FoodType分組,然后以FoodPrice排序並顯示所在分組的相應行號,如果排序字段字相等則顯示相同的行號,
並跳過所在的真實行號*/
SELECT RANK() OVER(PARTITION BY FoodType ORDER BY FoodPrice) AS RowID,* FROM dbo.Food

 

 

 

DENSE_RANK()

/*以FoodType分組,然后以FoodPrice排序並顯示所在分組的相應行號,如果排序字段字相等則顯示相同的行號,
忽略相同行號,依次遞增*/
SELECT DENSE_RANK() OVER(PARTITION BY FoodType ORDER BY FoodPrice) AS RowID,* FROM dbo.Food

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM