上节内容【002】练习:
--1.查询emp表中数据,列出一列,内容为名字与职位 -- 显示格式:ename:job select ename||':'||job from emp; --2.查看每个员工职位的字符个数 select ename,length(job) from emp; --3.将所有员工的名字以小写形式,与首字母大写形式 --- 查询出来,第一列为小写形式,第二列为首字母大写 select ename,lower(ename),initcap(ename) from emp --4.将字符串"aaaaaabaaaaa"中左右两边的a去除 ---去除左边的a select trim( 'a' from 'aaaaaabaaaaa') from dual; select ltrim('aaaaaabaaaaa','a') from dual; --5.显示每个员工的名字,要求显示10位,第一列左对齐效果, ---第二列 右对齐效果 select ename,rpad(ename,10,' ') from emp; select ename,lpad(ename,10,' ') from emp; --6.截取字符串“DOCTOR WHO”中的“WHO” select substr('DOCTOR WHO',8,3) from dual; select substr('DOCTOR WHO',-3,3) from dual; --7.查看“DOCTOR WHO”中“WHO”的位置 select instr('DOCTOR WHO','WHO') from dual; select instr('DOCTOR WHO','WHO',1,1) from dual; --8.分别查看55.789四舍五入保留小数点后2位,整数位,十位后的 ---数字,显示成三列 select round(55.789,2),round(55.678),round(55.678,-1) from dual; --9.分别查看55.789截取后保留小数点后2位,整数位,十位后的 ---数字,显示成三列 select trunc(55.789,2),trunc(55.789),trunc(55.789,-1) from dual; --10.查看每名员工工资百位以下的数字? select ename,sal,mod(sal,100) from emp; --11.查看每名员工从入职到今天一共多少天,若有小数则向上取整。 select ename,hiredate,ceil(sysdate-hiredate) from emp; --12.查看从2008-08-08号到今天为止一共经历了多少天? select sysdate-to_date('2008-08-08','YYYY-MM-DD') from dual; --13.将每名员工入职时间以 例如: ----1981年12月3日的形式显示 select ename,to_char(hiredate,'YYYY"年"MM"月"DD"日"') from emp; --14.查看每个员工入职所在月的月底是哪一天? select ename,last_day(hiredate) from emp; --15.查看每名员工转正日期(入职3个月) select ename,hiredate,add_months(hiredate,3) from emp; --16.查看每名员工入职至今共多少个月? select ename,months_between(sysdate,hiredate) from emp; --17.查看从明天开始一周内的周日是哪一天? select next_day(sysdate,1) from dual; --18.查看82年以后入职的员工的入职日期,82年以前的 ---按照1982年01月01号显示,格式都是DD-MON-RR(默认) select ename, hiredate, greatest(hiredate, to_date('1982-01-01', 'YYYY-MM-DD')) from emp; /*select ename, hiredate, least(hiredate, to_date('1982-01-01', 'YYYY-MM-DD')) from emp*/ --19.查看每名员工的入职年份? select to_char(hiredate,'YYYY') from emp; select ename, hiredate, extract(year from hiredate) from emp;--时间截取 --20.显示每个员工的总收入(工资加奖金),奖金为null的只看工资 select ename,sal,comm,sal+nvl(comm,0) from emp; --21.使用nvl2实现第20题的需求【nvl2是Oracle特有】 select ename,sal,comm,nvl2(comm,sal+comm,sal) from emp; --