--1.查询系统当前日期
select sysdate from dual;
--2.请查询每个员工的名字、薪水和加薪15.5%之后的薪水(trunc取整)
Select last_name, salary, trunc(salary * 1.155) "new salary"
from employees;
--3.显示员工加薪15.5%(取整)之后员工的名字、原薪水和增加的薪水。(不允许做update操作,trunc取整)
Select last_name, salary, trunc(salary * 0.155) "new salary"
from employees;
--4.显示所有以’J’,‘A’,'M’打头的员工的名字和名字长度,且按照名字排升序
select last_name, LENGTH(last_name)
from employees
where substr(last_name, 0, 1) in ('J', 'A', 'M')
order by last_name asc;
--5.请查询员工名和工作时间(换算成月并取整),并按工作时间排降序
Select last_name, trunc(months_between(sysdate, hire_date), 0)
from employees
order by trunc(months_between(sysdate, hire_date), 0) desc;
--6.请查询员工的名字和薪水,并将薪水列变成15个字符长度,左边填充“$”符号
select last_name, lpad(salary, 15, '$') from employees;
--7.请查询部门id为90的所有员工的名字和他们参加工作的星期数(保留2位小数,不需要四舍五入)使用
select last_name, trunc((sysdate - hire_date) / 7, 2)
from employees
where department_id = 90;
--8.创建报告,显示员工名和奖金系数,如果奖金系数为空,则显示$无奖金
select last_name, decode(commission_pct, '', '无奖金', commission_pct)
from employees;
--9.请使用case语句,查询员工的job_id和级别.例如:
--job_id Grade
--AD_PRES A
--ST_MAN B
Select job_id,
case job_id
when 'AD_PRES' then
'A'
when 'ST_MAN' then
'B'
when 'IT_PROG' then
'C'
when 'SA_REP' then
'D'
when 'ST_CLERK' then
'E'
else
'0'
end "Grage"
from employees;
--10.请使用decode语句,查询员工的job_id和级别.例如:
select t.job_id,
decode(t.job_id,
'AD_PRES',
'A',
'ST_MAN',
'B',
'IT_PROG',
'C',
'SA_REP',
'D',
'ST_CLERK',
'E',
'0')
from employees t;
Oracle基础——单行函数练习(二)
最新推荐文章于 2022-02-06 20:38:41 发布