oracle--1.函数的作业

--1.函数的作业
--1.找出部门为10.的所有经理和部门20.中的所有分析师(ANALYST)的详细资料


SELECT * FROM EMP WHERE DEPTNO = 10 AND JOB ='MANAGER';
SELECT * FROM EMP WHERE DEPTNO = 20 AND JOB ='ANALYST';


SELECT * FROM EMP WHERE (DEPTNO = 10 AND JOB ='MANAGER')
OR(DEPTNO = 20 AND JOB ='ANALYST');
--2.找出各月的最后一天受雇的所有员工


SELECT * FROM EMP WHERE HIREDATE = LAST_DAY(HIREDATE);


--3.找出首字母大写的所有雇员的姓名
SELECT * FROM EMP WHERE INITCAP(ENAME)= ENAME;


SELECT * FROM EMP WHERE INITCAP(ENAME) LIKE SUBSTR(ENAME,1,1)||'%';


SELECT * FROM EMP WHERE INITCAP(SUBSTR(ENAME,1,1)) =SUBSTR(ENAME,1,1);


--4.显示所有雇员的姓名以及满10年的服务期限


SELECT ENAME,HIREDATE,ADD_MONTHS(HIREDATE,10*12) FROM EMP;


--5.取得部门中所有人的平均薪水
--第一步:先获取所有人的薪水等级
SELECT E.EMPNO,E.ENAME,E.SAL,E.DEPTNO,G.GRADE FROM EMP E,SALGRADE G
WHERE E.SAL BETWEEN G.LOSAL AND G.HISAL;


--第二部;将第一步的结果用部门进行分组,并获取等级的而平均值
SELECT S.DEPTNO,AVG(S.GRADE),AVG(SAL) FROM
(SELECT E.EMPNO,E.ENAME,E.SAL,E.DEPTNO,G.GRADE FROM EMP E,SALGRADE G
WHERE E.SAL BETWEEN G.LOSAL AND G.HISAL) S GROUP BY S.DEPTNO


--6.取得平均薪水部门最高的编号
--第一步 取得各部门的最大值
SELECT MAX(AVG(SAL)) MAX_SAL FROM EMP E GROUP BY DEPTNO; 
--第二步 使用having过滤 获取最大值
SELECT A.DEPTNO ,AVG(SAL) AVG_SAL FROM EMP A GROUP BY DEPTNO 
HAVING  AVG(SAL) = 
(SELECT MAX(AVG(SAL)) MAX_SAL FROM EMP E GROUP BY DEPTNO);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值