- 博客(7)
- 收藏
- 关注
原创 oracle中简单的树形查询
oracle中简单的树形查询我们经常会用一些表来保存上下级的关系,如地区表,员工表,组织结构表等,为了按上下级递归查询这些数据,就需要用到树形查询,下面以emp表为例:emp表:select empno 员工编码,ename as 姓名,mgr as 主管编码,(prior ename) as 主管姓名 from emp start with empno=7566 connect by (prior empno)= mgr;查询的结果:我们分析一下这个语句:1.起点,这个语句是以start
2022-05-21 15:30:02
1959
原创 oracle
over函数的理解一句简单oracle函数用起来非常顺手,经常没有深入理解他的含义和原理,导致每次用的时候都有点生疏,以下是本人的理解:select * from emp;over函数的应用:工资累加select empno,ename,sum(sal) over(order by empno) as accumulateSal fromemp where deptno =30 order by empno;效果如下,分别累加工资:其实可以理解为按照over(order by empno)
2022-03-24 16:55:09
804
原创 oracle中对表中数据分组排序取最值
oracle中对表中数据分组排序取最值首先创建操作表emp:业务场景:需要查询相同部门的员工,按照入职日期排序,并且取出每个部门最新入职的员工信息!select * from (select t1.*,row_number() over(partition by t1.deptno order by hiredate desc) as row_number from emp t1) where row_number=1首先会根据各个部门里面的人员按照入职时间(hiredate)排序,然后取出
2021-04-16 09:31:37
370
原创 oracle中关于生成累计和
oracle中关于生成累计和首先创建oracle基础表如下:现在要求分别累计各部门的工资之和:select empno,deptno,ename,sal,hiredate,sum(sal) over(order by hiredate) as totalsal from emp order by hiredate;效果如图:当分析函数over()中的排序变成了deptno,后面的total就变成了部门工资的总和而不再是逐次叠加了。这个要区分一下:select empno,deptno,e
2020-08-06 17:20:01
212
原创 oracle中关于case when then的小解析
1.首先创建两个表emp,emp_bonus如下:(1)emp_bonus:(2)emp:2.首先对emp_bonus表进行操作:select emp_bonus.*,(case when empno=7934 then 0 when empno=7839 then 1 else -1 end) as asd from emp_bonus效果:可见case when then 的作用或者效果是根据条件重新添加了一列!其实这一列可以的多表关联中
2020-07-24 14:25:30
2129
原创 oracle中基本函数小记:listagg,pivot用法
(1)listagg()作用:将数据表某一列的内容转换为一行,并且用符号隔开;select job,listagg(ename,’,’) within group(order by job) from emp group by job(2)pivot()子句应用:实现行转列:select *from (select job,sal,deptno from emp)pivot(sum(sal) as afor deptno in(10 as d10,20 as d20, 30 as d30))
2020-07-04 16:06:25
659
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人