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;

执行结果: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;

执行结果如下:
testrpa,testrpadrpad,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 rpadrpadtest 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;

执行结果如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/chunfenxiaotaohua/article/details/92847482