-
Notifications
You must be signed in to change notification settings - Fork 1
/
第四章.txt
37 lines (37 loc) · 2.31 KB
/
第四章.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
##第四章
--1. 显示 dname和 loc中间用-分隔
select CONCAT(CONCAT(dname,'-'),loc) from dept;
--2. 将部门名称左填充为 10位
select LPAD(dname,10) from dept;
--3. 将员工名字的‘S’,替换为‘s’
select replace(ename,'S','s') from emp;
--4. 求员工名字的前三位
select substr(ename,1,3) from emp;
--5. 查找员工名字中‘S’第一次出现的位置
select instr(ename,'S',1,1) from emp;
--6. 查找员工名字中第二次出现‘T’的位置
select instr(ename,'T',1,2) from emp;
--7. 查找员工名字的长度
select length(ename) from emp;
--8. 显示一年前的今天日期和一年以后今天的日期
select add_months(sysdate,-12),add_months(sysdate,12) from emp;
--9. 显示本月第三天的日期
select sysdate-(to_char(sysdate,'dd'))+3 from dual;
--10. 显示今天到'2012-12-12'相隔的月数
select months_between(sysdate,'12-12月-2012') from dual;
--11. 显示员工工资的货币表示形式,比如 RMB5,000
select to_char(sal,’$9,999’) from emp;
--12. 显示 1949年 10月 1日的字符串格式,最后显示结果为 1949年 10月 1日
select to_char(to_date('1949-10-1','yyyy-mm-dd'),'fmyyyy"年"MM"月"DD"日"') from dual;
--13. 按照如下要求显示数据:sal=800 显示低工资,sal=3000 正常工资,sal=5000 高工资
select sal,decode(sal,800,'低工资',3000,'正常工资',5000,'高工资') from emp;
--14. 显示以下字段及字符串的连接:"The job id for ",姓名(大写)," is " ,工作(小写) 如:The job id for ALLEN is salesman
select 'The job id for'||ename||' is '||job from emp;
--15. 显示出姓名中最后一个字母为"N"的员工姓名 (使用 substr或者 instr)
select ename from emp where substr(ename,-1)=’N’;
--16. 查询参加工作时间在每月 15日之后的员工姓名,参加工作时间17. 用"*"的个数表示员工的工资中包含多少"千",如 3500,显示'***',5600,显示'*****'
select ename,hiredate from emp whereto_char(hiredate,’DD’)>15;
--18.显示员工名,参加工作时间,参加工作 6个月后的第一个周一
select ename,hiredate,next_day(add_months(hiredate,6),2) from emp;
--19.显示员工姓名,月薪,年薪(13个月的月薪+10000元奖金+comm)要求别名为annual_salary,要求所有人的年薪都显示出来
select ename,sal,(sal*13+10000+nvl(comm,0)) "annual_salary"from emp;