--单词大小写函数
--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