Oracle数据库函数

时间:2021-10-30 14:52:55

--字符函数
select * from dual;
--首字母大写
select initcap('hello') from dual;
--大小写转换
select lower('FUN') from dual;
select upper('fun') from dual;

--去空格
select trim('  asd  ') from dual;
--去掉右边字符串
select ltrim('so cute', 'so') from dual;
--去掉左边字符串
select rtrim('so cute', ' cute') from dual;
--字符替换
select replace('I am Hary','H','M') from dual;
--截取字符串
select substr('abcdefg',2,4) from dual;
--字符串连接
select concat('hello','world') from dual;
--多字符串连接
select 'Hello'||'World'||'!' from dual;

注:dual是系统自带表


---数字函数

Abs(n)  绝对值

Cell(n)  大于等于参数的最小整数(有1进1)

Cos(n)  余弦值

Cosh(n)  反余弦值

Floor(n)  去尾取整

Power(m,n)  m的n次方

Mod(m,n)  m余n 取模

Round(m,n)  四舍五入

Trunc(m,n)  保留n位小数

sqrt(n) 平方根


--转换函数

TO_CHAR(sysdate,'YYYY-fmMM-fmDD  HH24:MI:SS') 转换成字符型

TO_DATE('2016-11-2','yyyy-mm-dd') 字符转换成日期 

TO_NUMBER('100')  字符转数字


count() 显示表里有多少条数据

avg(age) age的平均数

max() 最大值

min() 最小值

sum()求和


--分组(GROUP BY)

GROUP BY用于将信息划分为更小的组,每一组行返回针对该组的单个结果

HAVING用于指定GROUP BY子句检索行的条件

例:搜索每门功课的最高分

select s.subject, max(s.score) from students sGROUP BY subject;

条件筛选

select s.subject, max(s.score) from students sGROUP BY subject HAVING subject != 'math';

注:用group by进行分组,只能用having进行条件添加,不能用where


--排序(ORDER BY)

select * from students order byscore DESC/ASC;//DESC倒序  ASC正序