您的位置:首页 > 数据库 > Oracle

使用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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: