Oracle分析函数之LEAD和LAG
发布日期:2025-04-30 00:48:49 浏览次数:14 分类:精选文章

本文共 1310 字,大约阅读时间需要 4 分钟。

Oracle SQL LAG ? LEAD ???????

LAG ? LEAD ?????

? Oracle SQL ??LAG ? LEAD ?????????????????????????LAG?Lagging???????????? LEAD?Leading????????????????????????????????????????????????????

????

??????? LAG ? LEAD ????????

SELECT deptno,        sal,        ename,        lead(ename, 1, 'lead_ename') OVER (PARTITION BY deptno ORDER BY sal) lead_ename,        lag(ename, 1, 'lag_ename') OVER (PARTITION BY deptno ORDER BY sal) lag_enameFROM emp;

????

???? SQL ?????????

DEPTNO SAL ENAME LEAD_ENAME LAG_ENAME
10 1300 MILLER CLARK lag_ename
10 2450 CLARK KING MILLER
10 5000 KING lead_ename CLARK CLARK
20 800 SMITH JONES lag_ename
20 2975 JONES FORD SMITH
20 3000 FORD lead_ename JONES JONES
30 950 JAMES WARD lag_ename
30 1250 WARD MARTIN JAMES
30 1250 MARTIN TURNER WARD
30 1500 TURNER ALLEN MARTIN
30 1600 ALLEN BLAKE TURNER
30 2850 BLAKE lead_ename ALLEN ALLEN

????

  • LEAD ???LEAD(ename, 1, 'lead_ename') ???? ename ??????????????1 ?????????????'lead_ename' ??????????????????
  • LAG ???LAG(ename, 1, 'lag_ename') ???? ename ??????????????1 ?????????????'lag_ename' ??????????????????

????

  • PARTITION BY deptno ??????????? deptno ??????
  • ORDER BY sal ??????????????????? sal ????
  • ?????? PARTITION BY ? ORDER BY????????????????????

??

LEAD ? LAG ??? SQL ?????????????????????????????????????????????????????????????????

上一篇:Oracle分组取前n条记录
下一篇:Oracle函数与存储过程和程序包

发表评论

最新留言

关注你微信了!
[***.104.42.241]2026年06月09日 00时03分11秒