码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2016-07-16 00:47:30      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:

其他:
	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; --判断不同:返回第一个参数

 

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

标签:

原文地址:http://www.cnblogs.com/newwind/p/5674958.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!