加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle-函数-偏移取值(跨行引用)

发布时间:2020-12-24 11:20:59 所属栏目:百科 来源:网络整理
导读:? ? 开发中经常用到当前行数据需要和临近行数据进行逻辑处理,这时跨行引用就派上了用场,注意以下结果中PREV_SAL的值: --LAG分析函数,延后取数,在不使用自联接的情况下同时提供对表的多行数据的访问SELECT hire_date,last_name,salary,LAG(salary,1,0)

? ? 开发中经常用到当前行数据需要和临近行数据进行逻辑处理,这时跨行引用就派上了用场,注意以下结果中PREV_SAL的值:

--LAG分析函数,延后取数,在不使用自联接的情况下同时提供对表的多行数据的访问
SELECT hire_date,last_name,salary,LAG(salary,1,0) OVER (ORDER BY hire_date) AS prev_sal
  FROM employees
  WHERE job_id = ‘PU_CLERK‘
  ORDER BY hire_date;
执行结果:   
HIRE_DATE LAST_NAME                     SALARY   PREV_SAL
--------- ------------------------- ---------- ----------
18-MAY-03 Khoo                            3100          0
24-JUL-05 Tobias                          2800       3100
24-DEC-05 Baida                           2900       2800
15-NOV-06 Himuro                          2600       2900
10-AUG-07 Colmenares                      2500       2600
--LEAD分析函数,向前取数
SELECT hire_date,LEAD(hire_date,1) OVER (ORDER BY hire_date) AS "NextHired" 
  FROM employees
  WHERE department_id = 30
  ORDER BY hire_date;
执行结果:
HIRE_DATE LAST_NAME                 Next Hired
--------- ------------------------- ----------
07-DEC-02 Raphaely                  18-MAY-03
18-MAY-03 Khoo                      24-JUL-05
24-JUL-05 Tobias                    24-DEC-05
24-DEC-05 Baida                     15-NOV-06
15-NOV-06 Himuro                    10-AUG-07
10-AUG-07 Colmenares

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读