问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

oracle emp,dept表中查询部门人数大于所有部门平均人数的部门编号、部门名称、部门人数

发布网友 发布时间:2022-04-30 02:39

我来回答

3个回答

懂视网 时间:2022-04-30 07:00

 

部门326为部门329的父部门,部门2与部门326是同级部门;

账户muyunfei,属于329部门

消息发送给部门2及部门326两个部门(326|2),发送的部门对象之间用“|”分割

技术分享

 

 

查询:muyunfei账户是否属于该部门字符串(329|2)或者该部门字符串的子部门中

1、首先使用start with。。。。。connect by获得账户muyunfei的部门及父部门

2、遍历部门及父部门,在循环体重嵌套循环(该循环拆分以“|”为分隔符的部门号),在嵌套的循环体中判断,两结果是否相同,相同,即人属于当前部门或其子部门,返回1结束循环,否则继续循环

create or replace function check_User_in_dept(to_party_id varchar2, --部门id,多个用|分割
      cur_user_id varchar2 --人员id
      ) return varchar2 as
 /*
 功能:判断当前人是是否属于当前部门中
 * 1当前人属于该部门,0不属于
 */
 party_str varchar2(200);
 v_length NUMBER := LENGTH(to_party_id);
 v_start NUMBER := 1;
 v_index NUMBER;

 cursor c_1 is
 select *
 from wx_party a
 start with a.party_id = (select b.department
    from wx_contacts b
    where b.user_id = cur_user_id)
 connect by a.party_id = prior a.parent_id;

begin
 /*检索游标数据*/
 for v_1 in c_1 loop
 /**根据‘|’拆分字符串,并匹配数据,如果存在然后1,否则继续循环*/
 WHILE (v_start <= v_length) LOOP
 v_index := INSTR(to_party_id, '|', v_start);
 -- DBMS_OUTPUT.PUT_LINE('v_index:' || v_index);
 IF v_index = 0 THEN
 party_str := SUBSTR(to_party_id, v_start);
 v_start := v_length + 1;
 ELSE
 party_str := SUBSTR(to_party_id, v_start, v_index - v_start);
 v_start := v_index + 1;
 END IF;
 --DBMS_OUTPUT.PUT_LINE('party_str:' || party_str);
 --DBMS_OUTPUT.PUT_LINE('party_id:' || v_1.party_id);
 IF party_str = v_1.party_id then
 return '1';
 end if;
 END LOOP;
 /*重置循环条件*/
 v_length := LENGTH(to_party_id);
 v_start := 1;
 end loop;
 return '0';
end;


 

版权声明:本文为博主原创文章,未经博主允许不得转载。

oracle查询某人所在的部门(326)是否属于部门字符串(329|2)或者该部门字符串的子部门中

标签:

热心网友 时间:2022-04-30 04:08

select s.deptno,s.dname,count(t.empno) from emp t,dept s where t.deptno=s.deptno group by s.deptno,s.dname having count(t.empno) > (select count(empno)/count(distinct deptno) from emp )

热心网友 时间:2022-04-30 05:26

一、数据库概念

数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。

根据存储模型可将数据库划分为关系型数据库和非关系型数据库。

关系型数据库,是建立在关系模型基础上的数据库,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。

标准数据查询语言SQL就是一种基于关系数据库的语言,这种语言执行对关系数据库中数据的检索和操作。

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。

数据库设计的三范式:

第一范式是指数据库表的每一列都是不可分割的基本数据项。

第二范式就是非主属性非部分依赖于主键。

第三范式就是属性不依赖于其它非主属性。

二、select查询列

--查询

-- 员工表 部门表 薪资等级表 奖金表

--select *|字段名1,字段2,... from 表名;

--查询所有的员工信息

select * from emp;

--查询所有的员工姓名,员工编号,上级经理人编号,部门编号

--查询的数据: 员工姓名,员工编号,上级经理人编号,部门编号

--数据的来源: emp员工表

--条件:

select ename, empno, mgr, deptno from emp;

--去重 distinct

select distinct deptno from emp;

--去重的要求:查询出来的两条数据,要求每一个字段的值都相同,才能达到去重效果

select distinct deptno,ename from emp;

--取别名

--""原样输出 ,别名是小写的,有特殊符号存在,前后必须添加""

--给字段取别名 (as) 别名

select ename as "username", empno "员工 编号" from emp;

--给表取别名: 表名 别名,注意:表取别名不能出现as

select ename 员工名称 from emp e;

--伪列 :不存在的字段

--表达式

select distinct 123*456 乘积 from dept;

--字符串用单引号表示 ,原样输出用双引号

select empno,ename,123*345,'haha' 哈哈 from emp;

--虚表 没有数据,没有字段

select 123*456,'hehe' from al;

--字符串的拼接 ||

--查询员工姓名,结果前拼接SXT-

select 'SXT-'||ename "尚学堂员工姓名",comm from emp;

--null是空值,和数字运算,结果还是null

select ename ,comm "原奖金",comm+100 "新奖金" from emp;

--null 和 字符串拼接,结果是原串

select ename ,comm "原奖金",comm||'100' "新奖金" from emp;

--处理null值, nvl(值1,值2) 当值1为null,函数的结果为值2,当值1不为null,函数的结果为值1

例如:select nvl(null,0) from al;

三、查询行

--select 数据 from 表名 where 行过滤条件;

--执行流程: from where select

--查询20部门的所有员工的信息

--查询的数据: *

--来源: emp

--条件: deptno=20

select * from emp where deptno=20;

-- 比较条件:= != <> > < >= <=

-- 查询 SMITH 的信息

select * from emp where ename = 'SMITH';

-- 查询除了'SMITH'之外的所有人信息 != <>

select * from emp where ename != 'SMITH';

-- and | or

--区间范围的值: > < >= <= between and

-- 查询工资在1500~2500之间的员工工种和姓名和工资
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 形容“正义”的诗词有哪些? 男性成女性为闺蜜吗? 真的有男女闺蜜吗? 挂门头广告牌比隔壁的上投高一点儿好,还是下边儿低点儿好? 7和7p电池容量 男女闺蜜相处的区别在哪? 什么是男女闺蜜到什么程度算 日本商铺门头设计的要求和表现,加深对共性和个性的理解? 男女之间叫闺蜜合适吗? 房屋买卖合同与补充协议 苹果7和7pius有什么很大的差别吗 什么是闺蜜?女人和女人俩人关系好特别好的朋友称为闺蜜,如果男人和男人俩人之间关系很好也是最好的朋友 闺蜜有分男女吗? 苹果7p和7的续航差别是多少 ? 男女闺蜜是什么样的? 草莓几月份种植? 男女关系什么叫闺蜜 男女闺蜜是什么样关系? 二手房屋买卖补充协议怎么写 草莓什么时候种植 谁有关于HIT FM 发展历史的介绍 正气歌有名诗句 匹克R04077M 多钱 怎样把QQ欢乐斗地主下载到金立A320手机上 匹克 板鞋r8315b价钱 吉他技巧中的 b和r 是什么意思 匹克几点下班 Linpack中Rmax和Rpeak是什么意思 真有奥林匹克号吗 匹克的英文广告曲哪有下的啊!~ 石家庄 匹克那里有卖? peak temperature是什么意思 水滴筹里如果点击发送手机验证码收不到怎么办? 并行f,s,i,以及peak什么意思 匹克xe22067b都有什么颜色的 r2008年北京奥运会的会徽是什么 国产品牌爱国者、匹克谁能得到百事巨星热力兄弟代言呢?我想知道? 微信开发者平台这是什么意思,不太明白,要怎么使用,小白求大神帮助 打球阴茎上部被撞 举例:中国地名中带“阴”“阳”二字