ROW_NUMBER
📄字数 472
👁️阅读量 加载中...
功能描述
从1
开始为结果集中的每一行分配一个唯一的数字值。
语法格式
sql
ROW_NUMBER() OVER ([analytic_clause])
输入参数
analytic_clause
:可选的分析子句,支持分组子句,排序子句以及范围子句,详情见analytic_clause。
输出结果
输出结果为INTEGER
类型。
示例
SQL
-- 创建示例表
SQL> CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(50),
hire_date DATE
);
-- 插入数据
SQL> INSERT INTO employees (id, name, hire_date) VALUES
(1, 'Alice', '2023-01-15'),
(2, 'Bob', '2022-12-01'),
(3, 'Charlie', '2023-03-10');
-- 使用 ROW_NUMBER() 分配序号
SQL> SELECT
id,
name,
hire_date,
ROW_NUMBER() OVER (ORDER BY hire_date ASC) AS row_num -- 按入职日期升序编号
FROM employees;
+----+---------+-------------+---------+
| ID | NAME | HIRE_DATE | ROW_NUM |
+----+---------+-------------+---------+
| 2 | Bob | 2022-12-01 | 1 |
| 1 | Alice | 2023-01-15 | 2 |
| 3 | Charlie | 2023-03-10 | 3 |
+----+---------+-------------+---------+