![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SQL
熊博主
勤 静 战
展开
-
SQL-在具有上下级关系的表中,找到没有下级的员工级别路径
需求:在具有上下级关系的表中,找到没有下级的员工的上级所有员工路径。如:A的下级是B,B的下级是C,C的下级是D,D没有下级。这时输出/A/B/C/D分析与解答:使用分层查询【level connect_by_isleaf start with connect by order siblings】connect_by_isleaf=1表示该节点为叶子节点,即没有下级。【conne...原创 2020-04-10 16:01:45 · 1160 阅读 · 2 评论 -
SQL-将具有上下级关系的表,转换成树形图,并标识各节点的类型(根节点、分支节点、叶子节点)
需求:将具有上下级关系的表,转换为树形图,并标识各节点的类型(根节点、分支节点、叶子节点)分析与解答:根据伪列level和connect_by_isleaf的值进行判断即可selectlevel,(lpad(' ',(level-1)*2,' ')||empno) 树形图, --根据层级左填充空格,以展示树形empno,ename,connect_by_isleaf 是否有,...原创 2020-04-04 11:02:41 · 899 阅读 · 0 评论 -
SQL-如何将具有上下级关系的数据表转化为树形图,清晰的看出各级人员的关系
1、需求:对于scott用户的emp表,以KING为一级人员,找出所有人员的等级关系。并能清晰的找出每个人的上下级。2、分析及解答在上一篇博客中讲到,使用分层查询可以很好的找到每个人员所在层级,代码及结果如下:selectlevel,empno,ename,sal,hiredate,mgr,(prior ename) as mgr_name, --返回ename上一级的信息...原创 2020-04-04 10:32:51 · 1721 阅读 · 1 评论 -
SQL-根据各人员上下级关系,得到各人员分别处于几级单位,并获取各人员的相关信息
1、数据表:现在有一个表,也就是oracle数据库中scott用户下的emp表。2、需求:如果KING是一级人员,那么其他人分别是几级人员?并获取每个人对应的上级的姓名及工资情况。3、分析及解答:对于这种包含上下级关系的表,可以使用分层查询。把每一行都当作是一个节点,将这种上下级关系转换成树状图,每层表示对应的级别。prior col_name 【返回col_name的父节点的co...原创 2020-04-03 21:30:11 · 1398 阅读 · 0 评论 -
SQL-读取表中每天的某个时间段的数据
今天工作遇到一个问题,要统计11月上午9点到下午9点的记录。取11月的数据很容易,但是取每天的某个时间段的数据就显得有点困难,看了别人的博客,自己也学到了些东西。其实这个统计并不困难。建立测试表create or replace view v_ex(group_id,id,begintime,endtime,sal,ex_name) asselect 1,1,to_date('2019-11...原创 2020-01-07 14:08:41 · 10812 阅读 · 7 评论 -
SQL-几个做报表常用函数
近来工作遇到了有关统计报表相关的任务,所以这篇博客来说一下这方面的知识。为自己带来方便也为阅读这篇博客的同学带来便捷。生成测试表create or replace view v_ex(group_id,id,begintime,endtime,sal,ex_name) asselect 1,1,date'2019-11-01',date'2019-11-02',10,'A' from dua...原创 2019-12-31 14:09:16 · 1517 阅读 · 0 评论 -
SQL-exists的用法
关于exists的用法,相信很多人都有点迷糊。一开始,我也犯迷糊,看了多篇博客和进行多次实验之后,其实,理解exists的用法并没有那么困难。测试表之前已经建立过,可以查阅这篇博客看看测试表具体数据。1. 用法select * from table_name where [not] exists(子查询);2. 分析过程1、首先查询select * from table_name的结果2...原创 2019-12-21 10:36:51 · 15426 阅读 · 4 评论 -
SQL-多表关联查询详解
为了在工作中能更顺利的使用多表关联查询,今天这篇博客就写这个内容了。在讲解多表关联查询之前,先生成测试表。登录scott用户,运行以下语句生成测试表。create table ex1 as select * from emp;create table ex2 as select * from dept;insert into ex1(empno,ename,job) values(888...原创 2019-12-19 23:26:59 · 13481 阅读 · 0 评论 -
SQL-update的使用
今天工作上遇到了一个问题。如何用一个表的某一列数据去修改另一个表的列。update 表名 set =值 where 筛选条件;这个是update的普通用法。但是在涉及两个或者多个表时,又该怎么使用呢?一种较好的用法是使用表连接。update (table1 inner join table2 on table1.id=table2.id) set table1.col=table2.c...原创 2019-12-16 21:26:10 · 430 阅读 · 0 评论