LEAD¶
说明¶
提供在不使用自连接的情况下访问表中多个行的途径,给定要查询的行组和一个位置指针,LEAD函数能根据给定的物理偏移量访问后面位置的行。
参数¶
value_expr
一个表达式。
offset
向后的偏移量,如果不指定,则默认值为1。此参数为正数时相当于指定向后的偏移量;为负数时相当于指定向前的偏移量;为0时相当于取本行的值。
default
如果偏移量超过窗口范围,则返回可选的default值,如果没有指定default的值,则其默认值为NULL。
query_partition_clause
一个分区语句。
order_by_clause
一个排序语句。
返回值¶
给定的物理偏移量后面位置行的表达式的值。
示例¶
示例1: 查看排序在后面的记录值
-- 清理环境
DROP TABLE tab1 CASCADE;
-- 创建表并插入数据
create table tab1(id INT, a INT, b INT);
INSERT INTO tab1 VALUES(1, 21, 55);
INSERT INTO tab1 VALUES(2, 21, 56);
INSERT INTO tab1 VALUES(3, 21, 48);
INSERT INTO tab1 VALUES(4, 22, 70);
INSERT INTO tab1 VALUES(5, 22, 65);
INSERT INTO tab1 VALUES(6, 11, 40);
INSERT INTO tab1 VALUES(7, 11, 43);
INSERT INTO tab1 VALUES(8, 31, 77);
INSERT INTO tab1 VALUES(9, 32, 80);
SELECT * FROM tab1 ORDER BY id;
ID(int) |A(int) |B(int) |
-------------------------------------
1 |21 |55 |
-------------------------------------
2 |21 |56 |
-------------------------------------
3 |21 |48 |
-------------------------------------
4 |22 |70 |
-------------------------------------
5 |22 |65 |
-------------------------------------
6 |11 |40 |
-------------------------------------
7 |11 |43 |
-------------------------------------
8 |31 |77 |
-------------------------------------
9 |32 |80 |
总数目:9
-- 查看排序在后面的记录值
SELECT id, a, b, LEAD(a, 2) OVER (ORDER BY a,b) FROM tab1 ORDER BY id;
ID(int) |A(int) |B(int) |LEAD(int) |
----------------------------------------------------
1 |21 |55 |22 |
----------------------------------------------------
2 |21 |56 |22 |
----------------------------------------------------
3 |21 |48 |21 |
----------------------------------------------------
4 |22 |70 |32 |
----------------------------------------------------
5 |22 |65 |31 |
----------------------------------------------------
6 |11 |40 |21 |
----------------------------------------------------
7 |11 |43 |21 |
----------------------------------------------------
8 |31 |77 |null |
----------------------------------------------------
9 |32 |80 |null |
总数目:9
-- 删除表
DROP TABLE tab1;