Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


LEAD

📄字数 798
👁️阅读量 加载中...

功能描述

用于返回结果集中当前行之后指定偏移行的值。

语法格式

sql
LEAD(expr1[ ,expr2[ ,expr3]]) OVER ([analytic_clause])

输入参数

  • expr1:列名或表达式,用来指定输入数据。
  • expr2INTEGER 类型或者能隐式转换为 INTEGER 类型的其他类型的值,用来指定偏移量,取值大于 0,缺省值为 1
  • expr3DOUBLENUMERICINTEGER 类型或者能隐式转换为 DOUBLENUMERICINTEGER 类型的其他类型的值,用来指定默认值,缺省时为 NULL
  • OVER ([analytic_clause]):可选的分析子句,支持分组子句,排序子句以及范围子句,详情见analytic_clause

输出结果

返回值的数据类型与 expr1 的类型一致,当参数 expr1NULL 时,输出结果为 NULL,当指定的偏移超出窗口边界时,返回 default 值。

示例

sql
-- 建表并插入数据
SQL> CREATE TABLE emp (
         empno INT PRIMARY KEY,
         ename VARCHAR(10),
         deptno INT,
         sal DECIMAL(10,2),
         hiredate DATE
     );

SQL> INSERT INTO emp VALUES
     (7369, 'SMITH', 20, 800, '1980-12-17'),
     (7499, 'ALLEN', 30, 1600, '1981-02-20'),
     (7521, 'WARD', 30, 1250, '1981-02-22'),
     (7566, 'JONES', 20, 2975, '1981-04-02'),
     (7654, 'MARTIN', 30, 1250, '1981-09-28');

-- 返回结果集中当前行之后指定偏移行的值
SQL> SELECT empno, ename, deptno, sal, LEAD(sal, 2) OVER (ORDER BY hiredate)  FROM emp;

+-------+--------+--------+------+--------+
| EMPNO | ENAME  | DEPTNO | SAL  | EXPR1  |
+-------+--------+--------+------+--------+
| 7369  | SMITH  | 20     | 800  | 1250   |
| 7499  | ALLEN  | 30     | 1600 | 2975   |
| 7521  | WARD   | 30     | 1250 | 1250   |
| 7566  | JONES  | 20     | 2975 | <NULL> |
| 7654  | MARTIN | 30     | 1250 | <NULL> |