oracle函数文档格式.docx

上传人:b****2 文档编号:361847 上传时间:2023-04-28 格式:DOCX 页数:12 大小:159.38KB
下载 相关 举报
oracle函数文档格式.docx_第1页
第1页 / 共12页
oracle函数文档格式.docx_第2页
第2页 / 共12页
oracle函数文档格式.docx_第3页
第3页 / 共12页
oracle函数文档格式.docx_第4页
第4页 / 共12页
oracle函数文档格式.docx_第5页
第5页 / 共12页
oracle函数文档格式.docx_第6页
第6页 / 共12页
oracle函数文档格式.docx_第7页
第7页 / 共12页
oracle函数文档格式.docx_第8页
第8页 / 共12页
oracle函数文档格式.docx_第9页
第9页 / 共12页
oracle函数文档格式.docx_第10页
第10页 / 共12页
oracle函数文档格式.docx_第11页
第11页 / 共12页
oracle函数文档格式.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

oracle函数文档格式.docx

《oracle函数文档格式.docx》由会员分享,可在线阅读,更多相关《oracle函数文档格式.docx(12页珍藏版)》请在冰点文库上搜索。

oracle函数文档格式.docx

二、数字函数

各种数学函数ORACLE都可以计算如:

ABS(N)可以求绝对值。

三角函数SINCOSTANASINACOSATAN。

自然函数EXPLNLOG。

开方SQRT。

常用的数字函数有:

(一)Round(n[,m])

取四舍五入结果,当m省略的时候四舍五入到整数位

如:

Round(34.916,2)=34.92

Round(34.916)=35

(二)Trunc(n[,m])

截断数字,当m省略的时候直接取到整数位

Trunc(34.916,2)=34.91

Trunc(34.916)=34

(三)MOD(m,n)

取余数,n=0返回结果为m

Mod(1600,300)=100

Mod(1600,0)=1600

三、字符函数

(一)concat(str1,str2)

连接两个字符串

注意:

跟“||”用法类似

(二)length(str1)

计算字符串的长度

如:

(三)Substr(str1,m[,n])

截取指定长度的字符串。

m:

开始长度n:

截取的字符串长度,如果为空,默认截取到字符串结尾。

(四)Lpad(str1,n,str2)

左端填充字符串,返回指定长度为n的字符串

(五)Rpad(str1,n,str2)

右端填充字符串,返回指定长度为n的字符串

(六)INSTR(str1,str2[,n1[,n2]])

返回str2在str1中位置其中str1:

原字符串;

str2:

要寻找的字符串;

n1:

查询起始位置,正值表示从左到右,负值表示从右到左,省略不写,默认为1,n2:

第几个匹配项,省略不写,默认为1

四、日期函数

Oracle数据库用内部数字格式存储日期:

世纪,年,月,日,小时,分钟和秒

默认日期显示格式是DD-MON-RR。

日期加上或减去数字,结果是另一个日期值

两个日期相减可以得到天数,注意:

日期+1等于明天+1/24等于下一小时

(一)MONTHS_BETWEEN(date1,date2)

计算date1和date2之间的月数,结果的小数部分表示月的一部分

(二)ADD_MONTHS(date,n):

添加n个日历月到date。

n的值必须是整数,但可以是负的。

(三)NEXT_DAY(date,‘char’)

计算在date之后的下一个周(‘char’)的指定天的日期。

char的值可能是一个表示一天的数或者是一个字符串。

(四)last_day(date)

返回特定日期所在月份的最后一天

(五)Sysdate

用于返回当前系统时间,每一次执行sysdate的结果都不一样

五、转换函数

在某些情况下,Oracle服务器使用一种数据类型的数据,而在另外一种情况下我们希望使用一种不同数据类型的数据,如果这种情况发生,Oracle服务器自动转换数据为期望的数据类型。

这种数据类型的转换可以被Oracle服务器隐式进行,或由用户显式进行。

显式数据类型转换用转换函数进行。

转换函数转换从一种数据类型转换值到另一种数据类型。

通常,函数名的构成遵循数据类型到数据类型的约定,第一个数据类型是输入数据类型;

后一个数据类型是输出数据类型。

注:

尽管隐式数据类型转换是可用的,但建议你做显式数据类型转换以确保SQL语句的可靠性。

分类图如下:

(一)隐式数据类型转换

对于直接赋值,Oracle服务器能够自动地进行下面的转换:

(二)显式数据类型转换

转换图示如下:

(三)对日期使用TO_CHAR函数

格式如下:

使用时应注意:

1、必须加单引号,并且区分大小写

2、能够包含任一有效的日期格式元素

3、有一个fm元素用来删除填补的空或者前导零

4、用一个逗号与日期值分开

(四)对数字使用TO_CHAR函数

例一:

例二:

(五)使用TO_NUMBER和TO_DATE函数

格式如下:

六、空值函数

NVL(变量,常数)其中变量为任意变量,常数为任意类型。

当仅当变量为空值时,将结果输出为常数,如变量不为空,输出变量的值

七、DECODE函数

DECODE(exp,s1,r1,s2,r2..s,r[,def])可以把它理解成一个增强型的ifelse,只不过它并不通过多行语句,而是在一个函数内实现ifelse的功能。

exp做为初始参数。

s做为对比值,相同则返回r,如果s有多个,则持续遍历所有s,直到某个条件为真为止,否则返回默认值def(如果指定了的话),如果没有默认值,并且前面的对比也都没有为真,则返回空。

例如:

emp表中如果JOB是SALEMAN,薪水增加10%;

如果JOB是CLERK,薪水增加5%;

如果JOB是ANALYST,薪水增加20%。

对于所有其他的工作角色,不增加薪水。

分析:

相当于用一个IF-THEN-ELSE语句来表达:

IFjob='

SALEMAN'

THEN

sal=sal*(1+10/100)

CLERK'

THEN

sal=sal*(1+5/100)

ANALYST'

sal=sal*(1+20/100)

ELSEsal=sal

解题:

方法一:

Selectename,job,sal,sal*(1+10/100)asr_salfromempwherejob=‘SALEMAN’;

Selectename,job,sal,sal*(1+5/100)asr_salfromempwherejob=‘CLERK’;

Selectename,job,sal,sal*(1+20/100)asr_salfromempwherejob=‘ANALYST’;

虽然符合题目但是得分别查询,看起来不方便

方法二:

使用decode函数

Selectename,job,sal,

decode(job,’SALEMAN’,sal*(1+10/100),‘CLERK’,sal*(1+5/100),‘ANALYST’,sal*(1+20/100),sal)asr_sal

fromemp;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2