Oracle内置函数(1)
Oracle常⽤的内置函数:
1.数值型函数:
数值型函数可以输⼊数字,并返回⼀个数值。⼤多数可以达到⼩数点后38位。⼀部分则⽀持30位或者36位⼩数。
1.1 绝对值、取余、判断数值正负函数:
1)ABS(n)函数。⽤于返回绝对值。该函数输⼊⼀个参数,参数类型为数值型,假如参数为可以隐式转换成数值型,那么也可以。
select abs(100),abs(-100),abs(‘100’)from dual;
运⾏结果是:100,100,100
2).MOD(n2,n1)函数。该函数表⽰返回n2除以n1的余数。如果n1为0,那么该函数将返回n2.
select mod(5,2),mod(8/3,5),mod(‘10’,5),mod(-10,6),mod(1,0) from dual;
运⾏结果是: 1,2.6666667,0,-4,1
3)sign(n)函数:返回参数n的符号。正数返回1,0返回0,负数返回-1。
1.2.三⾓函数:
常⽤的三⾓函数有:
cos(n):返回参数n的余弦,n为弧度表⽰的⾓度。
acos(n):返回n的反余弦值;
cosh(n):返回n的双曲余弦值;
sin(n):返回n的正弦值;
asin(n):返回n的反正弦值;
sinh(n):返回n的双曲正弦值;
tan(n):返回n的正切值;
tanh(n):返回n的双曲正切值;
atan(n):返回n的反正切值。
1.3、返回以指定数值为准整数的函数
1):CEIL(n)其返回结果是⼤于等于输⼊参数的最⼩整数。(返回的是⼤于给出的n的最⼩整数,如10.2,输出11,-10.2这输出-10⽽不是-11);
select ceil(10),ceil(‘10.5’),ceil(-10.2)from dual;
运⾏结果是:
10,11,-10
2):floor(n)其返回结果是⼩于或者等于参数的最⼤整数。(与上⼀个正好相反,输出我们输⼊的整数部分,如-10.5,则输出-11);
select floor(10),floor(‘10.5’),floor(-10.2)from dual;
运⾏结果是:10,10,-11
1.4指数、对数
1)sqrt(n)函数,该函数⽤于返回n的平⽅根。
select sqrt(100),sqrt(‘53.9’)from dual;trim函数用于删除空格
执⾏结果:10,7.34166194
2)power(n2,n1)函数,利⽤该函数可以得到n2的n1次幂的结果。
select power(5,2),power(‘5’,2),power(-5,2)from dual;
执⾏结果:25,25,25
exp(n)表⽰返回e的n次幂,e为数学常量,e=2.71828183…。
3)log(n1,n2)返回以n1为底n2的对数,n1是除1和0以外的任意正数。
select log(10,100),log(10.5,‘100’),power(10,2)from dual;
执⾏结果:
2,2.21461873,100
ln(n)函数,表⽰返回n的⾃然对数。n要求⼤于0;
1.5四舍五⼊截取函数
1)ROUND(n,integer)。它将数值n四舍五⼊成第⼆个参数指定的形式的⼗进制数。
select round(100.23456,4),round(100.23456,2.56),round(155.23456,-2)
执⾏结果是:
100.2346,100.23,200
2)TRUNC(n,integer),把数值n根据integer的值进⾏截取,截取时和integer的正负有关。参数integer要求是整数,如果不是整数,那么它将⾃动截取为整数部分。当integer为正整数时,表⽰n将截取到integer位⼩数;如果integer为负数,则⾃动截取到⼩数点左第integer位,截取部分⽤0代替。
select trunc(100.23456,4),trunc(100.23456,2.56),trunc(155.23456,-2),trunc(155.23456)
from dual;
执⾏结果:
100.2345,100.23,100,155
2字符型函数
2.1ASCII码与字符转换函数
1)CHR(n[using nchar_CS])根据相应的字符集,把给定的ASCII码转化成字符using nchar_cs
select chr(65)||chr(66)||chr(67)ABC,chr(54678) from dual;
执⾏结果:
ABC,諙
2)ASCII(char)返回⾸字母的ASCII码值。
select ascii('明'),ascii('Adb'),ascii('ABC') from dual;
执⾏结果是:50167,65,65
2.2获取字符串长度
LENGTH:返回指定字符串的长度,返回类型是数字。
select length('ABCDE我FGHI')from dual;
执⾏结果是:10
2.3字符串截取函数
substr,该函数提供截取字符串的功能
select substr('ABCDE我FGHI',5,2),substr('ABCDE我FGHI',-5,2)from dual;
执⾏结果:E我,我F
2.4字符串连接函数
concat(char1,char2)。该函数两个参数并返回。
select concat('我的','测试!'),'我的'||'测试!' from dual;
执⾏结果:
我的测试!,我的测试!
2.5字符串搜索函数
instr该函数可以让我们在指定的字符串中搜索是否存在另⼀个字符串。
select instr('this is a 测试!','测'),instr('this is a 测试!','s',-1)from dual;
执⾏结果是:11,7
2.6字母⼤⼩写转换函数
1)upper(char)将指定的参数全部转换成⼤写字母。
select upper('c'),upper('abcd'),upper('this is a test')from dual;
执⾏结果:C,ABCD,THIS IS A TEST
2)LOWER(char)将指定的参数全部转换成⼩写字母。
select lower('A'),lower('ABCD'),lower('THIS IS A TEST!')from dual;
执⾏结果是:a,abcd,this is a test
3)initcap(char)将所有单词⾸字母转换成⼤写字母
select initcap('this is a test')from dual;
执⾏结果:This Is A Test
2.7带排序参数的字母⼤⼩写转换函数
1)NLS_initcap(char[,nlsparam])将指定参数的第⼀个字母转换成⼤写。
select nls_initcap('a test'),nls_initcap('my test','nls_sort=schinese_stroke_m')from dual;
执⾏结果是:A Test ,My Test
2)nls_upper(CHAR[,NLSPARAM])将指定参数变成⼤写
select nls_upper('this is a test',nls_cort=schinese_pinyin_m)from dual;
执⾏结果:THIS IS A TEST
3)nls_lower(char[,nlsparam])将指定参数转换成⼩写。
select nls_lower('ABC','nls_sort=xgerman'),nls_lower('this is a test','nls_sort=xgerman')from dual;
执⾏结果:abc ,this is a test
2.8为指定参数排序函数
NLSSORT (char[,nlsparam])函数。根据nlsparam指定的⽅式对char进⾏排序。
select * from productionfo order by nlssort(productname,'nls_sort=schinese_pinyin_m');
执⾏结果如下:
由运⾏结果可以看出查询数据根据productname字段按拼⾳排序。
2.9替换字符串
REPLACE(char,search_string[,replacement_string]),是⼀个替换字符串函数。
三个具体参数是:
char:表⽰搜索的⽬标函数。
search_string:在⽬标字符串中要搜索的字符串。
replacement_string:该参数可选,⽤它可替代被搜索的字符串,如果该参数不⽤,则表⽰char参数中删除search_string字符串。select replace('this is a test','tes','resul')from dual;
执⾏结果如下:
this is a result
select replace('this is a test','tes')from dual;
执⾏结果如下:
this is a t
2.10字符串填充函数
1)RPAD(expr1,n[,expr2]),该函数的功能是在字符串expr1的右边⽤字符串expr2填充,直到整个字符串长度为n时为⽌。
select rpad('test',8,'*rpad'),rpad('test',15,'*rpad'),rpad('test',4,'*rpad')from dual;
执⾏结果如下:
test rpa,test rpad rpad,test
2)lpad(expr1,n[,expr2]),该函数的功能是在字符串expr1的左边⽤字符串expr2填充,直到整个字符串长度为n为⽌,如果expr2不存在,则以空格填充。
select lpad('test',8,'*rpad'),lpad('test',15,'*rpad'),lpad('test',4,'*rpad')from dual;
执⾏结果如下:rpatest rpadrpad test test
2.11删除字符串⾸位指定字符的函数
1)TRIM([leading|trailing|both][trim_character from]trim_source)该函数将删除指定的前缀 或尾随的字符。具体参数介绍如下:leading:删除trim_source的前缀字符;
trailing:删除trim_source的后缀字符;
both:删除trim_source的前缀和后缀字符;
trim_character:删除的指定字符,默认删除空格;
trim_source:被操作的字符串。
select trim(trailing't'from 'test'),trim('  test  ')from dual;
执⾏结果如下:
tes test
2)rtrim(char[,set])该函数会提供将char右边出现在set中的字符删除掉。如果set没有,则默认删除空格。
select rtrim('test    '),rtrim('test*ffs','fs*')from dual;
执⾏的结果是:test test
3)ltrim(char[,set]),该函数提供将char左边出现在set中的字符串删除掉。如果set没有,则默认删除空格。
select ltrim('    ftest    ','  f  ')from dual;
执⾏结果是:test
2.12 字符集名称和ID互换
1)NLS_CHARSET_ID(string)该函数可以得到字符集名称对应的ID。string表⽰字符集名称。
select nls_charset_id('US7ASCII')from dual;
执⾏结果是:
2)NLS_CHASET_NSME(number)该函数可以根据字符集ID得到对应名称。number表⽰字符集ID。
select nls_charset_name(1)from dual;
执⾏结果如下:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。