使用oracle遇到的相关函数
2015-09-17 18:16
573 查看
1. sign() 比较大小,decode
select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; --取较小值 sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1 例如: 变量1=10,变量2=20 则sign(变量1-变量2)返回-1,decode解码结果为“变量1”,达到了取较小值的目的
2. decode()函数
decode(变量1,’变量2’,变量3,变量4) ,大部分用于查询字段时候用。如果变量1等于变量2的时候,此字段就为变量3,否则为变量4
3,over()函数
over经常和sum函数联合使用,项目中 分摊手续费使用到sum(sal) over (partition by deptno)
意思是以deptno分组,求和。和group by 不同的是,表中有多少条记录,查出结果就有多少条,但是相同的deptno查出的sum(sal)值相同。
而group by 不同的是,相同的deptno就会被分为一组,查出的数据记录少于等于原来记录
4. to_number(ibnrcode)
将字符型的字段转换为数字型,当两个字段为字符型 ,但是需要进行计算时候用到。查询语句用到。4. TO_CHAR
将日期型字段转换为字符型TO_CHAR(BACKTRACKDATE, ‘yyyy-mm-dd’) = ‘2014-06-30’
常用语查询,或者where条件后时候
例子:
select to_char(statdate, 'YYYY/MM/DD HH24:MI:SS') from RESCANCEL t
statdate为日期型字段,后面为日期格式 delete from A where TO_DATE(a, 'YYYY-MM-DD')=‘2015-06-30’
5.TO_DATE
常用在插入,更新字段时候,该字段为日期类型的时候。比如 a字段为日期型,
A代表表名
insert into text(riqi) values (to_date('2015-09-01','YYYY-MM-DD'));
注意:
insert into text(riqi) values (to_date('2015-09','YYYY-MM-DD')); insert into text(riqi) values (to_date('2015-09-09','YYYY-MM'));
是错误的
前面的字符串长度和后面的格式要匹配否则出错
6. ADD_MONTHS
几个月后的日期,如果月数为负数,表示几个月前的日期例子:
select TO_CHAR(ADD_MONTHS(TO_DATE('2015-06-30', 'YYYY-MM-DD'), -1), 'YYYYMM') from dual;
6.months_between
计算两个日期之间相隔的月数select months_between(to_date(‘2010-8月-8’,’YYYY-MON-DD’),
to_date(‘2008-8月-8’,’YYYY-MON-DD’)) from dual;
7.INSTR函数
语法:instr( string1, string2 [, start_position [, nth_appearance ] ] )
参数:
string1:源字符串,要在此字符串中查找。
string2:要在string1中查找的字符串.
start_position:代表string1 的哪个位置开始查找。此参数可选,如果省略默认为1. 字符串索引从1开始。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。
nth_appearance:代表要查找第几次出现的string2. 此参数可选,如果省略,默认为 1.如果为负数系统会报错。
样例:
SELECT INSTR(‘Hello World!’,’l’) FROM dual;
结果:3
SELECT INSTR(‘Hello World!’,’l’,4,2) FROM dual;
结果:10
–可利用此函数来检查String1中是否包含String2,如果返回0表示不包含,否则表示包含
SELECT INSTR(‘Hello World!’,’World’) FROM dual;
结果:7
8.SUBSTR函数
语法:substr( string, start_position, [ length ] )
参数:
string:要截取的字符串
start_position:截取开始位置
length:截取长度
样例:
SELECT SUBSTR(‘Hello World!’,3) FROM dual;
结果:llo World!
SELECT SUBSTR(‘Hello World!’,3,6) FROM dual;
结果:llo Wo
相关文章推荐
- Oracle Data Provider for .NET的使用(托管与非托管(一))
- oracle中 connect by prior 递归算法
- 如何使用plsql导出oracle数据建表语句,存储过程,视图。以及表中数据
- oracle 里 插入空字符串会被转成null插入
- 采用oracle官方文件(11G)——初步Concept
- Oracle笔记——子查询
- Oracle——主键外键
- Oracle GoldenGate视频教程
- Oracle ——数据完整性
- Oracle——集合运算
- Oracle笔记——快速删除查询重复的数据
- Oracle笔记——分页查询
- Oracle笔记——常用函数
- Oracle笔记——number(p,s)
- Oracle锁表
- Oracle笔记——DDL
- oracle——安装图解
- Oracle——DML
- oracle恢复删除数据
- Oracle database 11.2.0.1 升级至 11.2.0.3