oracle 有关emp表的简单查询练习题(2)

2018-12-10 00:07

--16、显示所有雇员的姓名以及满10年服务年限的日期 add_months SELECT ename, ADD_MONTHS(hiredate,12*10) ten_years FROM emp; --17、显示雇员的详细资料,按姓名排序 SELECT * FROM emp ORDER BY ename;

--18、显示雇员姓名,根据其服务年限,将最老的雇员排在最前面 ASC SELECT ename,hiredate FROM emp ORDER BY hiredate;

--19、显示所有雇员的姓名、工作和薪金,按工作的降序顺序排序,而工作相同时按薪金升序

SELECT ename,job,sal FROM emp ORDER BY job DESC, sal;

--20、显示所有雇员的姓名和加入公司的年份和月份,按雇员受雇日所在月排序,将最早年份的项目排在最前面 ASC

SELECT ename,TO_CHAR(hiredate,’YYYY’)||’年’ year, TO_CHAR(hiredate,’MM’) ||‘月’ month FROM emp ORDER BY TO_CHAR(hiredate,’MM’), TO_CHAR(hiredate,’YYYY’);

--21、显示在一个月为30天的情况下所有雇员的日薪金 SELECT ename,sal,ROUND(sal/30) FROM emp; --22、找出在(任何年份的)2月受聘的所有雇员

SELECT * FROM emp WHERE TO_CHAR(hiredate,’MM’)=’02’; --23、对于每个雇员,显示其加入公司的天数 SELECT TRUNC(sysdate-hiredate) DAYS FROM emp;

--24、显示姓名字段的任何位置,包含 \的所有雇员的姓名 instr SELECT DECODE(INSTR(ename,’A’),0,’未找到’, INSTR(ename,’A’)) FROM emp;

--25、以年、月和日显示所有雇员的服务年限

SELECT TRUNC(MONTHS_BETWEEN(sysdate,hiredate)/12) YEAR, TRUNC(MONTHS_BETWEEN(sysdate,hiredate)) MONTH, TRUNC(sysdate-hiredate) DAY FROM emp;

超难问题:求出所有在闰年被雇佣的雇员信息。

思路:求出被雇佣年的第一天,再加一个月,变成2月1日,再求该月最后一天,最后比较它是不是29日?(另一个思路,按照year/4考虑)

SELECT * FROM emp WHERE

TO_CHAR(LAST_DAY(ADD_MONTHS(TRUNC(hiredate,’YYYY’),1)),’DD’)=’29’;


oracle 有关emp表的简单查询练习题(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:浅谈会计电算化目前存在的问题及解决对策

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: