oracle详细笔记---单行函数

来源:互联网 发布:七彩服装进销存软件 编辑:程序博客网 时间:2024/04/27 17:10

**

oracle详细笔记

--                                一:简单查询--1.选择在部门 30 中员工的所有信息select * from emp e where e.deptno = '30';--2.列出职位为( MANAGER)的员工的编号,姓名select e.empno,e.ename from emp e where e.job = 'MANAGER';--3.找出奖金高于工资的员工select * from emp e where e.comm > e.sal;--4.找出每个员工奖金和工资的总和select e.ename,(e.comm+e.sal)total from emp e;--5.找出部门 10 中的经理(MANAGER)和部门 20 中的普通员工(CLERK)SELECT *  FROM EMP a where (a.deptno = '10' and a.job = 'MANAGER')    or (a.deptno = '20' and a.job = 'MANAGER');--6.找出部门 10 中既不是经理也不是普通员工,而且工资大于等于 2000 的员工:(in函数)select *  from emp e where e.deptno = '10'   and e.job not in ('MANAGER', 'MANAGER')   and e.sal >= 2000;--7.找出有奖金的员工的不同工作select distinct e.job, e.ename, e.sal, e.comm  from emp e where e.comm is not null   and e.comm > 0; --8.找出没有奖金或者奖金低于 500 的员工 select * from emp e where e.comm is null or e.comm < 500  ; --9.显示雇员姓名,根据其服务年限,将最老的雇员排在最前面 select e.ename,e.hiredate from emp e order by e.hiredate asc -- --------------------------  二:单行函数 --------------------- -----  --1.Upper:转换为大写 select Upper('abcd') from dual; select * from emp e where e.ename = upper('smith'); --2:Lower:转换为小写 select lower('ASAD') from dual;--3:Initcap:返回字符串并将字符串的第一个字母变为大写;select initcap(e.ename) from emp e;select initcap('smith') from dual;--4.Concat:拼接select concat('123','abc') from dual;select '111' || '222' from dual;--5.Substr:字符串截取:截取右边内容,包括左边SELECT SUBSTR('abcdef',LENGTH('abcdef')-2) FROM dualSELECT substr('abcdef',-4,3) FROM dual;--从右边算起截取:cde--6.lengthSELECT e.ename,Length(e.ename) FROM emp e;--7.ReplaceSELECT replace(e.ename,'A','爱') FROM emp e ;--8.instr:在一个字符串中查找指定的字符,返回被查找到的指定的字符的位置。(下表从1开始算起)SELECT INSTR('Hello World','rl') FROM dual;--9.Lpad :左侧开始填充SELECT lpad('Hello',10,'@') FROM dual;--10.RpadSELECT rpad('Hello',10,'*') FROM dual;--11.Trim :过滤首位空格SELECT trim('  Hello Word   ') FROM dual;---数值函数--1.Round,第二个参数保留的小数位数SELECT round(412,-1) FROM dual;select round(412.236,2) from dual;--2.Trunc:TRUNC函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。--注意:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记。与取整类似,--比如参数为1即取整到十分位,如果是-1,则是取整到十位--TRUNC(89.985,2)=89.98--TRUNC(89.985)=89--TRUNC(89.985,-1)=80select trunc(412.13,-2) from dual;---日期函数--1.Months_between()select months_between(sysdate,e.hiredate) from emp e ;--2.Add_months():增加月select add_months(sysdate,2) from dual;--NEXT_DAY(date,char) date参数为日期型, char:为1~7或Monday/Mon~Sunday/ --指定时间的下一个星期几(由char指定)所在的日期, --char也可用1~7替代,1表示星期日,2代表星期一。。。。 还可以是星期一、星期二。。。星期日 select next_day(sysdate,2) from dual;  --3.Last_day:LAST_DAY函数返回指定日期对应月份的最后一天。select last_day(sysdate) from dual; 
0 0
原创粉丝点击