励伯奇 2026-05-12 14:49:19
markdown 上周,我在公司项目里用到排序函数 row_number()。 2023年,这个函数在SQL里非常实用。 我那个朋友,他告诉我,这个函数能根据某个字段进行排序,并自动分配行号。 地点在上海,他公司用的数据库是MySQL。 具体操作就是 SELECT row_number() OVER (ORDER BY 字段) FROM 表名。 这行代码在返回数据时,每个记录都会有一个从1开始的行号。 这个功能在数据分页或者排名统计时特别有用。 本质上,row_number() 是一种窗口函数,它能返回每个分组内部排序后的序号。 一言以蔽之,它就是根据你的需求,给结果集中的记录排序并分配行号。 每个人情况不同,不过这个函数真的很有用。 我刚刚想到另一件事,这个函数的 ORDER BY 子句后还可以加上 DESC 或 ASC 来指定排序方向。 你看着办,如果你要用这个函数,记得灵活运用。
180 赞
酒叔宝 2026-05-09 16:56:15
结论: SQL Server 2012起,ROW_NUMBER()函数可用于生成唯一序号。
时间:2012年 地点:SQL Server数据库 具体数字:无
吐槽: 这个函数简单,但很多人用错场景,比如在分组查询时,序号应该用RANK()或DENSE_RANK()。
例子: sql SELECT ROW_NUMBER() OVER (ORDER BY ColumnName) AS RowNum, ColumnName FROM TableName;
这条SQL语句在TableName表中按ColumnName列的值排序,并为每一行生成一个唯一的序号。
243 赞