文档库 最新最全的文档下载
当前位置:文档库 › oracle数据库练习题(函数)附 答案

oracle数据库练习题(函数)附 答案

用oracle函数完成查询

1 以首字母大写的方式显示所有员工的姓名
select initcap(ename) from emp;

2 将员工的职位用小写显示
select lower(job) from emp;

3 将员工的名字分别用大写和小写显示
select upper(ename),lower(ename) from emp;

4 将员工名字,首字母小写,其他字母大写的方式显示
select concat(lower(substr(ename,1,1)),upper(substr(ename,2,length(ename)-1))) from emp;

5 显示员工姓名为5个字符的员工
select ename from emp where length(ename)=5;

6 显示所有员工姓名的前三个字符
select substr(ename,1,3) from emp;

7 显示所有员工姓名的后三个字符
select substr(ename,-3,3) from emp;

8 以字符长度为10的方式显示员工职位,多余的位数在右边以*来填充
select rpad(job,10,'*') from emp;

9 找出字符串"oracle training"中第二个ra出现的位置
select instr('oracle training','ra',1,2) from dual;

10 去除字符串‘ aadde gf ’两边的空格
select trim(' ' from ' aadde gf ') from dual;

11 以指定格式显示员工的工资(格式:SMITH 的工资是 800)
select concat(concat(ename,' 的工资是 '),sal) from emp;

12 显示所有员工的姓名,用a替换所有"A"
select replace(ename,'a','A') from emp;

13 显示员工姓名中包含‘H’的员工
select ename from emp where instr(ename,'H')<>0;

14 显示员工姓名中第二个字符是‘L’的员工
select ename from emp where instr(ename,'L')=2;

15 显示员工姓名中最后一个字符是‘T’的员工
select ename from emp where instr(ename,'T',length(ename))<>0;

select ename from emp where substr(ename,-1)='T';

16 查询一个月前入职的员工
select ename from emp where add_months(hiredate,1)>=sysdate;

17 显示在一个月为30天的情况所有员工的日薪,忽略余数
select trunc(sal/30), ename from emp;
or
select floor(sal/30), ename from emp;

18 显示员工在此公司工作了几个月(要求结果是整数)
select floor(months_between(sysdate,hiredate)) from emp;

19 显示所有12月份入职的员工
select ename,hiredate from emp where to_char(hiredate,'mm')=12;

20 显示员工的年薪(12个月的工资+补贴)
select (sal+nvl(comm,0))*12 from emp;

21 显示所有员工的姓名、加入公司的年份和月份,并且按照年份排序
select ename,to_char(hiredate,'yy'),to_char(hiredate,'mm') from emp order by 2,3;

22 显示每月倒数第3天入职的所有员工
select hiredate,ename from emp where last_day(hiredate)-2=hiredate

23 显示入职满10年的员工的姓名和受雇日期。
select ename, hiredate from emp where sysdate>=add_months(hiredate,12*10);


相关文档
相关文档 最新文档