rownumber() over()用法
时间: 2023-09-10 16:10:52 浏览: 33
`ROW_NUMBER() OVER()`是一种窗口函数,用于为结果集中的每一行分配一个唯一的数字序号,该序号基于指定的排序规则。常见用法如下:
```sql
SELECT
ROW_NUMBER() OVER() AS row_num,
column1,
column2,
...
FROM
table_name
```
此语句将为查询结果集中的每一行添加一个名为row_num的新列,并为每一行分配唯一的数字序号。如果不指定排序规则,则默认按照查询结果的顺序进行排序。
例如,以下查询将为员工表中的每个员工分配一个唯一的数字序号,并按照薪水从高到低排列:
```sql
SELECT
ROW_NUMBER() OVER(ORDER BY salary DESC) AS row_num,
employee_id,
name,
salary
FROM
employee_table
```
使用`ROW_NUMBER() OVER()`函数可以很方便地对结果集进行分页,例如:
```sql
SELECT
*
FROM
(SELECT
ROW_NUMBER() OVER(ORDER BY create_time DESC) AS row_num,
message_id,
message_content,
create_time
FROM
message_table) AS temp_table
WHERE
row_num BETWEEN 1 AND 10;
```
此查询将从message_table中获取前10条最新的消息,并将它们的序号作为row_num列返回。