oracle聚合函数,条件判断--查询的基本语法
select * from emp;
select *
from emp
groupby是什么函数
where empno = 7369
order by sal desc
--oracle常⽤函数
--Oracle提供了⼀些可以执⾏特定操作的⽅法
--字符函数:对字符串类型的字段进⾏处理
select ascii('a') from dual;
--拼接字符串
select concat('hello', 'world') from dual;
select concat('h', 'w') from dual;
--获取字符串的长度
select length(ename) from emp;
--从字符串中查⼦字符串,返回位置,下标从1开始,若不到,返回0
select instr('hello world', 'or') from dual;
--转⼩写
select ename, lower(job) from emp;
--转⼤写
select upper('hello') from dual;
--去空格
select ltrim('  hello') from dual;
--去右空格
select rtrim('hello  ') from dual;
--去横杠
select ltrim('--hello' '-') from dual;
--去掉两边的空格
select trim('  hello  ') from dual;
--去两边的横杠
select trim('-' from '--hello--') from dual;
--字符串的替换
select replace ( 'abcd', 'c', 'z' )from dual;
-
-截取⼦字符串
select substr('abcde ', 2) from dual;
--2代表起始位置,3代表截取的字符长度
select substr('ABCDE', 2, 3) from dual;
--数字函数
--求绝对值
select abs(-3) from dual;
--反余弦
select acos(1) from dual;
--余弦
select cos(1) from dual;
-
-⼤于或等于这个参数的最⼩值
select ceil(5.4) from dual;
--⼩于或者等于这个参数的最⼤数
select floor( - 1.2)from dual;
--求对数
select log(2, 8) from dual;
--求余数
select mod(8, 3) from dual;
--求幂数
select power(2, 3) from dual;
--四舍五⼊
select round(45.67) from dual;
select round(100.579, 2) from dual;
--截断⽅法
select trunc(45.97) from dual;
select trunc(100.579) from dual;
--平⽅根
select sqrt(25) from dual;
--⽇期函数
--加上指定⽉数,返回新的⽇期
select hiredate, add_months(hiredate, 3) from emp;
--返回指定⽇期所在⽉的最后⼀天
select last_day(hiredate) from emp;
--返回两个⽇期之间相隔的⽉数
select months_between(sysdate, hiredate) from emp;
--转换函数*****
select to_date('1999-09-09', 'yyyy-mm-dd') from dual;
select to_char(sysdate, 'yyyy-mm-dd') from dual;
select substr(to_char(hiredate, 'yyyy-mm-dd'), 1, 4) from emp;
select to_number('123.45') from dual;
--为空值赋值
select comm + 500 from emp;
select nvl(comm, 0) from emp;
-
-条件判断
select decode(job,
'CLERK','业务员' ,
'SALESMAN','销售' ,
'MANAGER','经理')
from emp;
select case job
when 'CLERK' then
'业务员'
when 'SALESMAN' then
'销售'
end
from emp;
--以上函数称为单⾏函数
--输⼊⼀个常量返回⼀个结果,或输⼊⼀个字段名会针对每⼀条记录返回⼀个结果--聚合函数***************
--平均⼯资
select avg(sal) from emp;
--⼯资和
select sum(sal) from emp;
--员⼯数
select count(empno) from emp;
select count(*) from emp;
--最值
select max(sal) from emp;
select min(sal) from emp;
--使⽤了聚合函数后,不要再查询其他字段
select ename from emp where sal = (select max(sal) from emp);
select ename from emp where sal > (select avg(sal) from emp);
--分组操作**********************
select deptno, count(empno), avg(sal), sum(sal) from emp group by deptno; select job, avg(sal) from emp group by job;
--分组后,select只能⽤来查询分组的字段和聚合函数
--平均⼯资⼤于2000的部门编号
select deptno, avg(sal) avg_sal
from emp
group by deptno
having avg(sal)
> 2000;
--各个部门下CLERK的平均⼯资
select deptno, avg(sal)
from emp
where job = 'CLERK'
group by deptno
having avg(sal) > 1000;
--执⾏顺序
-
->where-->group by --->having---> order by
--where 分组之前过滤,对表中全部数据进⾏筛选--group by 对筛选之后的数据进⾏分组
--having 是筛选出符合条件的分组
--order by  是对筛选之后的分组进⾏排序

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。