Oracle练习题(三)

Oracle练习题(三)

说明:以下查询以scott模式下emp表和dept表为操作对象

(1) 查询一个月前入职的员工

select * from emp where months_between(sysdate,hiredate) > 1;

(2) 显示在一个月为30天的情况所有员工的日薪,忽略余数

select ename,trunc(sal/30) “日薪” from emp;

(3) 显示员工在此公司工作了几个月(要求结果是整数)

select round(months_between(sysdate,hiredate)) from emp;

(4) 显示所有12月份入职的员工

select * from emp where to_char(hiredate,‘MM’) = ‘12’;

(5) 显示员工的年薪(12个月的工资+补贴)

select sal*12+nvl(comm,0) “年薪” from emp;

(6) 显示所有员工的姓名、加入公司的年份和月份,并且按照年份排序

select ename,to_char(hiredate,‘YYYY’) “年份”,to_char(hiredate,‘MM’) “月份” from emp order by 年份 desc;

(7) 显示每月倒数第3天入职的所有员工

select * from emp where to_char(hiredate,‘DD’)= to_char(last_day(hiredate)-2,‘DD’);

(8) 显示入职满10年的员工的姓名和受雇日期。

select ename,hiredate from emp where to_char(sysdate,‘yyyy’)-to_char(hiredate,‘yyyy’) > 10;
或者
select ename,hiredate from emp where trunc(months_between(sysdate,hiredate)/12) > 10;

posted on 2021-12-25 15:17  JAVA开发区  阅读(20)  评论(0)    收藏  举报  来源