--单词大小写函数

--UPPER大写,LOWER小写,initcap首字母大写

select ename, upper(lower(ename)), lower(ename),initcap(ename) from emp

where ename = upper('smith') and lower(ename) = 'smith';

--字符处理函数

select concat('你好',',欢迎!') from dual;

--左边补全字符

select lpad('hello',10,'*'), rpad('world',6,'$') from dual;

select lpad(sal,10,'*') from emp;

--去除两边空格

select trim(' hello world ! ') from dual;

--替换首尾字符

select trim('!' from 'helloworld!') from dual;

--替换字符串中的字符

select replace('heiio worid!','i','l') from dual;

--取小数包含小数位,round四舍五入,trunc只舍不入

select sal2, round(sal2,2) ,trunc(sal2,2)from emp;

--求余数

select mod(10,3) from dual;

--查看本机的系统时间

select sysdate from dual;

--更新日期为当日

update emp set hiredate = to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd') where empno = 1;

--今天之前的一天

select sysdate - 1 from dual;

--两个日期之间天数

select floor(sysdate - to_date('2017-07-01','yyyy-mm-dd')) from dual;

--两个日期之间月数

select months_between(sysdate , to_date('2017-05-01','yyyy-mm-dd')) from dual;

--指定日期加上2个月

select add_months(sysdate , 2) from dual;

--下一个星期几

select next_day(sysdate , '星期三') from dual;

--当前时间的月末最后一天

select last_day(sysdate) from dual;

--当前时间 上午 周几

SELECT TO_CHAR(sysdate, 'YYYY-MM-DD HH24:MI:SS AM DY') FROM dual;

--当前时间带毫秒 上午 周几

SELECT TO_CHAR(systimestamp, 'YYYY-MM-DD HH24:MI:SS.ff AM DY') FROM dual;

--数字转字符串,并按照指定格式进行格式化

select to_char;$9,9999,9999,9999,9999.00000') from dual;

--字符串转数字

select to_number('99999.99') from dual;

--给某项为空的数据设置查询默认值

select nvl(sal2,0) from emp;

--相当于switch

select deptno, decode(deptno,20,'研发部',30,'市场部',10,'总裁办','人事部') as deptname from emp

order by deptno desc;

--排序desc倒序

select * from emp order by empno , mgr , sal desc

--格式化数字

select to_char(sal,'$999999.000') from emp;

--聚合函数

select

count(*) 员工数,

max(sal) 最高工资,

min(sal) 最低工资,

max(sal) - min(sal) 差额,

trunc(avg(sal)) 平均工资,

sum(sal + nvl(comm,0)) 每月工资总额

from emp;

--comm某项值为空,如果不加nvl,则sal值不参与计算

select sum(sal + comm) from emp;

select sum(sal + nvl(comm,0)) from emp;

--部门编号不为空的人员进行统计,统计出每个部门、

--每个上级所属员工的平均工资,每个部门的员工数量,

--并且平均工资大于2000

select deptno 部门编号, mgr 上级编号, avg(sal) 平均工资 , count(*) 员工数量

from emp

where deptno is not null

group by deptno, mgr

having avg(sal) > 2000 and deptno > 10

order by avg(sal) desc

--查询员工编号,姓名,部门编号,部门名称,工资

select

m.empno ,m.ename ,

d.deptno,d.dname,

m.sal

from emp m , dept d

where m.deptno = d.deptno

and d.dname like '__S%';

--自连接,m1上级,m2手下

select m1.empno, m1.ename ,m2.empno, m2.ename, m2.job

from emp m1 , emp m2

where m1.empno = m2.mgr;

--自连接,等值连接,非等值连接

--员工姓名,职位,工资,工资级别,部门名称,上级姓名,上级职位,上级工资,上级工资级别

--m员工,m2上级

select m.ename, m.job, m.sal, s.grade , d.dname , m2.ename , m2.job, m2.sal ,ms.grade

from emp m, emp m2, salgrade s ,dept d ,salgrade ms

where

m.deptno = d.deptno

and m.mgr = m2.empno

and m.sal >= s.losal and m.sal <= s.hisal

and m2.sal between ms.losal and ms.hisal

order by s.grade, m.sal

--员工姓名,工资,工资等级

select

m.ename, m.sal ,

decode;太少了',2,'有点少',3,'刚刚好',4,'再多点',5,'多多益善')

from emp m, salgrade s

where m.sal >= s.losal and m.sal <= s.hisal

1.《(oracle如何查询上月最后一天)oracle查询当月第一天和最后一天!》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《(oracle如何查询上月最后一天)oracle查询当月第一天和最后一天!》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/3366830.html