SQLSELECT ROW_NUMBER() OVER (PARTITION BY categoryid ORDER BY unitprice, productid) AS rownum, 
categoryid, productid, productname,unitprice FROM Production.Products;

这个SQL查询结果如下。
图片描述
但是我不明白ROW_NUMBER() OVER (PARTITION BY categoryid ORDER BY unitprice, productid) AS rownum是什么意思。直到做了下面这个查询才明白:

SQLSELECT categoryid,productid,productname,unitprice from Production.Products ORDER BY categoryid,unitprice, productid;

所谓的ROW_NUMBER()就是对数据表格按categoryid,unitprice, productid的优先级进行排序,取得排序号。但是当categoryid值由1跳到2,或者由2跳到3的时候,排序号重新从1开始计数。
图片描述


樊潇洁
415 声望23 粉丝

笨鸟先飞