2.时间函数
--1. 显示当前日期
select sysdate from dual;
--2. 显示当前日期,格式为 yyyy 年 mm 月 dd 日,别名为 hday
select to_char(sysdate,'yyyy"年"mm"月"dd"日"') hday from dual;
--3. 编写一个查询,显示姓名以 J、A 或 M 开始的所有员工的姓氏(第一个字母大写,其余
字母小写)和姓氏的长度,给每列一个合适的标签
select initcap(t.last_name) lname,length(t.last_name) len from employees t
where substr(upper(last_name),0,1) in('J','A','M');
--4 . 计算每位员工截止到当前时间入职的星期数,别名为 weeks_worked。按聘用的星期数
对结果进行排序。该星期数舍入到最接近的整数。同时显示员工的名字
select t.first_name,round((sysdate-t.hire_date)/7) as weeks_worked from employees t;
--5. 创建一个查询。显示所有员工的薪金。将薪金格式规定为 15 个字符长,左边填充$
select lpad(t.salary,15,'$') sal from employees t;
--6. 显示每位员工的姓氏、聘用日期和薪金复核日期,薪金复核日期是服务六个月之后的第
一个星期一。将该列标记为 review,格式类似于:Monday,the Thirty-First of July,2000
select t.last_name,t.hire_date,
/*next_day(add_months(t.hire_date,6),2) from employees t*/
to_char(next_day(add_months(t.hire_date,6),2),
'fmday,"the "ddspth" of "month,yyyy','nls_date_language=english') review
from employees t;
注:to_char 的第三个参数用于设置本次查询使用的国家和地区,ddspth 中 spth 为后缀,表
示 Spelled, ordinal number
--7. 显示员工的姓氏、聘用日期和该员工在星期几开始工作的
select t.last_name,t.hire_date,to_char(t.hire_date,'DAY') as start from employees t;
--8. 创建一个查询,使其显示员工的姓氏,并用星号指明他们的年薪。每个星号代表一千美
元。按薪资降序排列数据
select t.last_name||lpad(' ',trunc(t.salary/1000)+1,'*'),t.salary from employees t
order by t.salary desc;
--9. 创建一个查询。使其显示员工的姓氏和佣金额。如果某位员工不赚取佣金则显示“No
Commission”,将该列标记为 COMM
select t.last_name,nvl(to_char(t.salary*t.commission_pct,'999,999.99'),'No Commission') COMM
from employees t;
评论0
最新资源