数据库(学习整理)----5--Oracle常用的组函数

其他:
	1、oracle中下标是从1开始的,Java下标是从0开始的

函数分类:
	日期函数
	字符函数
	转换函数
	数学函数
	系统函数

---在当前月份上面:增加、减少月份
select add_months(sysdate,1) from dual;

---2个日期之间相差的月份数
select months_between(‘1-5月-2016‘,sysdate) from dual;

---获取指定时间的月末日期
select last_day(‘15-7月-2016‘) from dual;

----获取当前时间的近似时间
select round(sysdate) from dual;
select round(sysdate,‘yyyy‘) from dual;
select round(sysdate,‘mm‘) from dual;
select round(sysdate,‘dd‘) from dual;

----获取指定日期后的下一个  星期几的日期
select next_day(sysdate,‘星期二‘) from dual;

----从指定日期(date格式)的数据上截取指定格式的日期(返回date)
select trunc(sysdate,‘yyyy‘) from dual;
select trunc(sysdate,‘mm‘) from dual;
select trunc(sysdate,‘dd‘) from dual;

---- 从当前日期提取一日期类型
select EXTRACT(year from sysdate) from dual;
select EXTRACT(month from sysdate) from dual;
select EXTRACT(day from sysdate) from dual;

----转换字符:chr()数字转字符,ascii()字符转数字
select chr(100) from dual;
select ascii(‘d‘) from dual;

----除去左右指定字符
select ltrim(‘  hello  ‘) from dual;
select rtrim(‘  hello  ‘) from dual;
select trim(‘  hello  ‘) from dual;

--重载
select ltrim(‘111hello2221‘,‘1‘) from dual;

select rtrim(‘111hello2221‘,‘21‘) from dual;--右边只要有2、1就会被除去

select trim(‘1‘ from ‘111hello2221‘) from dual;

----字符替换:translate(不推荐使用)
select translate(‘Hello‘,‘l‘,‘A‘) from dual;    --HeAAo
select translate(‘Hello‘,‘ll‘,‘A‘) from dual;    --HeAAo

----字符替换:replace(推荐使用)
select replace(‘Hello‘,‘l‘,‘A‘) from dual;    --HeAAo
select replace(‘Hello‘,‘ll‘,‘A‘) from dual;    --HeAo

--------字符替换:decode(不推荐使用)
select replace(‘Hello‘,‘l‘,‘A‘) from dual;    --HeAAo
select replace(‘Hello‘,‘Hello‘,‘A‘) from dual;    --A
-----搜索一个字符数据中的指定字符的下标(一旦找到即可返回,不会接着向下去找了)
select instr(‘我是Yan Jason‘,‘a‘) from dual;---4

select instr(‘我是Yan Jason‘,‘K‘) from dual;---0

----截取字符串数据

--从指定的位置开始截取
select substr(‘我这里是测试数据Hello‘,2) from dual;--这里是测试数据Hello

--从指定的位置开始截取  指定截取的长度
select substr(‘我这里是测试数据Hello‘,2,2) from dual;--这里

----字符串的拼接:
select concat(‘我是天使‘,‘左翼-彦‘) from dual;----我是天使左翼-彦

----数据的左右补充
select lpad(‘天使彦‘,10,‘*‘) from dual;---****天使彦
select rpad(‘天使彦‘,10,‘*‘) from dual;---天使彦****

  

-----转换函数
--to_char() 转数值型、日期型、字符型
select to_char(sysdate,‘yyyy‘) from dual;
select to_char(sysdate,‘yyyy-MM‘) from dual;
select to_char(sysdate,‘yyyy-MM-dd‘) from dual;
select to_char(sysdate,‘yyyy-MMdd HH:mm:ss‘) from dual;--2016-0715 10:07:49
select to_char(sysdate,‘yyyy"年"MM"月"dd"日" HH"时"mm"分"ss"秒"‘) from dual;--2016年07月15日 10时07分40秒
select to_char(sysdate,‘yyyy-MM-dd HH:mm:ss‘) from dual;

select to_char(123) from dual;
select to_char(‘1-2-3‘) from dual;

--to_number() 只能转:字符型
select to_number(121) from dual; --131.2
select to_number(‘131.2‘) from dual;--131.2

--to_date() 【最常用】
select to_date(‘1993-09-18‘,‘yyyy-mm-dd‘) from dual;--1993/9/18
select to_date(‘1993-09-18‘,‘yyyy-mm-dd HH24:mi:ss‘) from dual;--1993/9/18
select to_date(‘2016-06-12 13:23:34‘,‘yyyy-mm-dd HH24:mi:ss‘) from dual;--2016/6/12 13:23:34
select to_date(‘2016-06-12 11:23:34‘,‘yyyy-mm-dd HH:mi:ss‘) from dual;--2016/6/12 11:23:34

----非空转换:NVL(expor1,expor2) NVL2(expor1,expor2,expor3) NullIF(expor1,expor2)
--NVL(expor1,expor2)【推荐使用】
select nvl(‘Jason‘,‘Yan‘) as 测试值 from dual;--Jason
select nvl(‘‘,‘Yan‘) as 测试值 from dual; --Yan
select nvl(null,‘Yan‘) as 测试值 from dual; --Yan

--NVL2(expor1,expor2,expor3)
select nvl2(‘Jason‘,‘Yan‘,‘天使‘) as 测试值 from dual; --Yan
select nvl2(‘‘,‘Yan‘,‘天使‘) as 测试值 from dual; --天使
select nvl2(null,‘Yan‘,‘天使‘) as 测试值 from dual; --天使

--NullIF(expor1,expor2)
select NullIF(‘Jason‘,‘Yan‘) as 测试值 from dual; --Jason
select NullIF(‘Yan‘,‘Yan‘) as 测试值 from dual; --判断相同:返回null
select NullIF(‘A‘,‘Yan‘) as 测试值 from dual;
select NullIF(‘B‘,‘Yan‘) as 测试值 from dual; --判断不同:返回第一个参数
时间: 2024-08-05 11:15:00

数据库(学习整理)----5--Oracle常用的组函数的相关文章

整理的Oracle常用语句

3个默认用户 sys change_on install [as sysdba] system manager scott tiger创建用户 create user 用户名 identified by 密码 defaul tablespace 表空间(Users) temporary tablespace 表空间(Temp) quota 整数 on 表空间(Users);--quota(限额) 临时表空间不能使用限额修改密码 alter user scott identified by tig

oracle篇 之 组函数

一,常见组函数 1 . avg:求平均值,操作数值类型 2.sum:求和,操作数值类型 3.min:求最小值,操作任意类型 4.max:求最大值,操作任意类型 select avg(salary),sum(salary),min(salary),max(salary) from s_emp; 5.count:统计记录条数 select count(*) from s_emp; 原文地址:https://www.cnblogs.com/wskb/p/10758612.html

[Oracle系列整理03] oracle常用函数

一)日期函数[重点掌握前四个日期函数]1.add_months[返回日期加(减)指定月份后(前)的日期] add_months(d1,n1)[功能]:返回在日期d1基础上再加n1个月后新的日期.[参数]:d1,日期型,n1数字型[返回]:日期select sysdate,add_months(sysdate,3)  from dual;返回:2015/3/2 22:22:50,2015/6/2 22:22:50 2.last_day [返回该月最后一天的日期] last_day(d1)[功能]:

MySQL数据库学习笔记(四)----MySQL聚合函数、控制流程函数(含navicat软件的介绍)

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4030506.html 联系方式:[email protected] [正文] 一.navicat的引入:(第三方可视化的客户端,方便MySQL数据库的管理和维护) NavicatTM是一套快速.可靠并价格相宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设.它的设计符合数据库管理员.开

oracle常用关键字和函数

数据库的增删改查: 增:insert into ... values(); 例:insert into p_emp values(sq_emp.nextval,'小白','保洁',7902,sysdate,600,null,30,0); commit; 注意,表里边有多少列,values()里边的内容就有多少,一一对应关系.后边加分号结束语句,然后commit:提交. 自增长序列:右击Sequences,new一个新的自增序列,起一个name,然后有一个nextval属性,实现自增长. 查:se

Oracle常用SQL时间函数

1.查询当前日期和时间 select sysdate from dual; 2.查询本月最后一天 select last_day(sysdate) from dual; 3.查询前后多少月 select add_months(sysdate,24) from dual; 4.查询下一周的星期几的具体日期(周日-周六:1-7) select next_day(sysdate,1) from dual; 5.时间转时间 select to_char(sysdate,'YYYY-MM-DD HH:MI

MySQL数据库学习笔记(五)----MySQL字符串函数、日期时间函数

一.常见字符串函数: 1.CHAR_LENGTH  获取长度(字符为单位) 2.FORMAT  格式化 3.INSERT  替换的方式插入 4.INSTR  获取位置 5.LEFT/RIGHT  取左.取右 6.LENGTH   获取长度(字节为单位) 7.LTRIM/RTRIM/TRIM 去空格(左/右/自定义) 8.STRCMP  字符串比较 9.CONCAT  字符串拼接 10.SUBSTRING  字符串截取 1.CHAR_LENGTH:获取长度(字符为单位) CHAR_LENGTH(s

Oracle常用的日期函数

--1.LAST_DAY函数:求指定日期所在月份的最后一天 SELECT LAST_DAY(TO_DATE('2014-12-02','YYYY-MM-DD')) FROM DUAL; --2.求指定日期是周几 SELECT TO_CHAR(TO_DATE('1989-01-05','YYYY-MM-DD'),'DAY') FROM DUAL; --3.求指定日期是本年的第几周 SELECT TO_CHAR(TO_DATE('1989-01-05','YYYY-MM-DD'),'WW') FRO

Oracle 常用的单行函数

数值函数: 1.round:返回四舍五入后的值 round(数字,参数) 参数不写默认为0 后面的参数指定了返回值的精度,或者说是从小数点第几位开始四舍五入,如果不带后面的参数,则默认为四舍五入取整数.精度截取以小数点为分界线,正数表示从以左到右截取并四舍五入,负数表示从右往左截取并四舍五入,精度值可以为小数. select round(1992.54, 1) from dual; select round(1992.54) from dual; select round(1992.54, -1