mysql中类似oracle的over() row_number()的功能实现
时间: 2023-07-25 17:04:38 浏览: 116
Oracle中使用Rownum分页详细例子
在MySQL中,可以使用`@row_number`变量来模拟Oracle中的`ROW_NUMBER()`函数的功能。
例如,以下是使用`@row_number`变量来计算每个部门的员工数量并为每个员工分配一个序号的示例:
```
SELECT
@row_number:=CASE
WHEN @dept_id = dept_id THEN @row_number + 1
ELSE 1
END as row_number,
@dept_id:=dept_id as dept_id,
emp_name
FROM
employees
CROSS JOIN (SELECT @row_number:=0, @dept_id:='') as t
ORDER BY
dept_id, emp_name;
```
这将返回每个部门的员工列表,并为每个员工分配一个序号。您可以根据需要更改`ORDER BY`子句以定义排序顺序。
阅读全文