oracle的内置函数
Posted 兰溪三日桃花雨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle的内置函数相关的知识,希望对你有一定的参考价值。
1数值型函数: 1.1绝对值、取余、判断数值正负函数 1)ABS(n) 函数。用于返回绝对值。该参数输入一个参数,参数类型为数值型,加入参数为可以隐式转换为数值类型,也可以 例:select ABS(100),ABS(-100),ABS(‘100‘) FROM DUAL; 2)MOD(n2,n1)函数。该函数表示返回n2/n1的余数。参数为任意数值或可以隐式转换为数值的类型。 例:select MOD(5,2),MOD(8/3,5),MOD(‘10‘,5),MOD(-10,6),MOD(1,0) FROM DUAL; 3)SIAN(N)函数。返回参数n的符号,正数返回1,0返回0,负数返回-1.但如果n为BINARY_FLOAT或FINARY_DOUBLE类型时,n>=0 或者n=NaN函数会返回1. 例:select sign(‘9‘),sign(-9),sign(0.00),sign(-2*‘9‘) from dual; 1.2三角函数: cos(n):返回参数n的余弦,n为弧度表示的角度: 例:select cos(3.1415926),cos(‘3.1415926‘) from dual; acos(n):返回n的反余弦值 cosh(n):返回n的双曲余弦值 sin(n):返回n的正弦值 asin(n):返回n的反正弦值 tan(n):返回n的正切值 tanh(n):返回n的双曲正切值 atan(n):返回n的反正切值 1.3返回以指定数值为准整数的函数 CELL(n)函数。返回大于等于输入参数的最小整数。 例:select cell(10),cell(‘10.5‘),cell(-10.2) from dual; FLOOR(N):返回结果是小于或等于参数的最大整数。 例:select floor(10),floor(‘10.5‘),floor(-10.2) from dual; 1.4指数,对数函数 sqrt(n):函数。该函数返回n的平方根。n不能为负数,为浮点数时返回nan。 例:select sort(100),sqrt(‘53.9‘) from dual; power(n2,n1):利用该函数可以得到n2的n1次幂的结果。n2为负数,则n1必须为整数。 log(n1,n2)函数。利用该函数可以返回以n1为底n2的对数。n1是除1和0以外的任意正数。 例:select log(10.100),log(10.5,‘100‘),power(10,2) from dual; 1.5四舍五入截取函数 round(n,integer)函数。它将数值n四舍五入成第二个参数指定的形式的十进制数。 例:select round(100.23456,4),round(100.23456,2.56),round(155.23456,-2) from dual; 结果: 100.2345 100.23 200 trunc(n,integer) 函数。它把数值n根据integer的值进行截取 例:select trunc(100.23456,4)trunc(100.23456,2.56),trunc(155.23456,-2),trunc(155.234546) from dual; 结果: 100.2345 100.23 100 155 2.字符型函数: 2.1 ASCII码与字符转换函数 CHR(n[USING NCHAR_CS])函数。根据指定的字符集,将给定的ASCII码转换为字符。 例:select CHR(65) || CHR(66) || CHR(67) ABC,CHR(54678) FROM DUAL; 结果: ABC 諙 2.2 获取字符串长度函数 length(char) :获取到指定字符串的长度 例: select length(‘abcde我fghi‘) from dual; 结果: 10 2.3 字符串截取函数 substr(char,position,substring_length) : char:原始字符串, position:截取开始位置,初始为1,负数从右边算起, substring_length:截取的长度 例: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(string,subString,position[,occurrence]) 例:select instr(‘this is a 测试!‘,‘测‘),instr(‘this is a 测试!‘,‘s‘,-1) from dual; 2.6 字母大小写转换函数 upper(char):参数转换成大写 lower(char):参数转换成小写 initcap(char):首字母转换成大写 2.7 带排序参数的字母大小写转换参数 nls_initcap(char[,nlsparam]),将指定参数的第一个字母转换成大写。 nls_upper(char[,nlsparam])将指定参数变为大写。 nls_lower(char[,nlsparam]) 将指定参数转换为小写。 2.8 指定参数排序函数 nlssort(char[,nlsparam])函数,根据nlsparam指定的方式对char进行排序。 2.9 替换字符串函数 replace(char,search_string,replacement_string):替换char中的search_string为replacement_string; 例:select replace(‘this is a test‘,‘tes‘,‘resul‘) from dual; 2.10 字符串填充函数 rpad(‘字符串‘,n,‘要填充的字符串‘):在字符串右边填充字符到指定长度n lpad(‘字符串‘,n,‘要填充的字符串‘):在字符串左边填充字符到指定长度n 2.11 删除字符串首位指定字符的函数 trim():删除指定的前缀或尾随的字符,默认删除空格 2.12字符集名称和ID互换函数 nls_charset_id(string):根据字符集名称得到对应ID nls_charset_name(number):根据字符集ID得到对应的名字 3.日期型函数 3.1系统日期,时间函数 SYSDATE函数。得到当前系统的日期 例:select TO_CHAR(SYSDATE,‘YYYY-MM-DD HH24:MI:SS‘) FROM DUAL; SYSTIMESTAMP函数。返回系统时间。 例:select systimestamp from dual; 3.2得到数据库时区函数 dbtimezone函数:返回数据库时区 3.3为日期加上指定月份函数 add_months(date,integer):指定日期data加一个integer月份数,负数表示减去的月份数 3.4返回指定月份最后一天的函数 next_day(date)函数 3.5返回指定日期后一周的日期函数 next_day(date,char)函数; 3.6返回回话所在时区当前日期函数 current_date函数; 3.7提取指定日期特定部分的函数 EXTRACT函数:从指定的时间当中提取到指定的日期部分。 例:select extract(year from sysdate) year from dual; 3.8得到两个日期之间的月份数 months_between(date1,date2)函数。返回两个时间月份的差值: 3.9时区时间转换函数 new_time(date,temezone1,timezone2)函数。该函数将返回时间date在时区timezone1转换到时区timezone2的时间。 3.10日期四舍五入,截取函数 round(date,fmt)函数。将函数date舍入到fmt指定的形式。如果参数fmt被省略,则date将被处理到最近的一天。 例:select to_char(round(to_date(‘2010-5-1 21:00:00‘,‘YYYY-MM-DD HH24:MI:SS‘)),‘YYYY-MM-DD HH24:MI:SS‘) FROM DUAL; TRUNC(DATE,FMT)函数,该函数将date截取到fmt指定的形式,如果fmt省略,则截取到最近的日期。 4.转换函数 4.1字符串转ASCII类型字符串函数 ASCII(char)函数。 例:select ASCIISTR(‘这是测试‘) FROM DUAL; 4.2二进制转十进制函数 bin_to_num(data[,data...])函数,该函数可以将二进制转化成对应的十进制。data表示二进制数,一位用‘,’隔开 例:select bin_to_num(1,1,0) from dual; 4.3数据类型转换函数 cast(expr as type_name)函数。将expr参数转换成type_name类型c,多用于数字与字符,字符与日期之间的转换。 4.4字符串和ROWID相互转换函数 chartorowid(char)函数。该函数将字符串类型转换成rowid类型。 ROWIDTOCHAR(rowid)函数,将行记录的rowid转换成字符串。 ROWIDTONCHAR(rowid)函数,将rowid转换晨成varchar2类型。 4.5字符串在字符串间转换函数 convert函数:用于把字符串从一个字符集转到另一个字符集。 4.6十六进制字符串与RAW类型相互转换函数 HEXTORAW(char)函数。把十六进制的字符串转换成raw类型的数据 RAWTOHEX(raw):把raw类型表示成一个由十六进制字符标识的串,返回varchar2类型。 4.7数值转换成字符型函数 TO_CHAR(number):将一个数值型参数转换成一个字符型数据。 TO_CHAR(date):把一个日期型数据转换成一个字符型数据。 4.8字符转日期型函数 TO_DATE(char[,fmt[,nlsparam]])函数:将字符型函数转成日期型数据。 例:select TO_DATE(‘2018-8-9‘,‘YYYY-MM-DD‘,‘MONTH‘) FROM DUAL; 结果: 7月 4.9字符型转数字函数 TO_NUMBER(expr[,fmt[,nlsparam]])函数:将字符串转换成数字 4.10全角转半角函数 TO_SINCLE_BYTE(char)函数。将全角转换成半角。 5.NULL函数 5.1返回表达式为null的函数 coalesce(expr)函数:返回列表中第一个不为null的表达式。如果都为null,则返回一个null。 5.2排除指定条件函数 lnnvl(condition)函数:该函数可以得到除了condition要求条件之外的数据,包括null的条件, 例:select * from productinfo where lnnvl(quantity>=70); 5.3替换null值函数 nvl(exprl,expr2)函数:如果exprl是null,就替换成expr2的值,否则返回expr1的值。 nvl2(expr1,expr2,expr3)函数:如果expr1是null,就返回expr3的值,当expr1不为空时,则返回expr2的值。 6.集合函数 6.1求平均值函数 AVG([distinctlall]expr)函数,求取指定列的平均值。 distinct:去除重复的值。 all:所有值 expr:表达式,只能是数值类型 例:select avg(all productprice+100) from productinfo; 6.2求记录数量函数 count(*|[distinct][all]expr)函数。该函数可以用来计算记录的数量或某列的个数。指定列名,或*表示全选。 *:计算所有记录 distinct:去重 all:所有的 expr:要计算的对象,通常是表的列 例:select count(dixtinct productprice) from productinfo where productprice < 3000; 6.3返回最大最小值函数 MAX([distinct|a]expr)函数。返回指定列中的最大值 例:select * from productinfo where productrice=(select max(productprice) from productinfo); MIN([distincr|all]expr)函数。返回指定列中的最小值 6.4求和函数 sum([distincr|all]expr)函数。该函数不同于count,它分组计算指定列的和。不使用分组,则默认整个表为一组。 例:select sum(all quantity),category from productinfo group by category; 7.其他函数: 7.1返回登录名函数 user函数:返回当前会话的登录名 select user from dual; 7.2返回回话以及上下文信息函数 userenv(paraameter)函数:返回当前回话的信息。 例:select userenv("isdba") from dual ; sys_context(namespace,parameter)函数:得到oracle已经创建的context,名为userenv的属性对应值。 例:select sys_context(‘userenv‘,‘session_user‘) session_user from dual; 7.3表达式匹配函数 decode(expr,search,result[,search1,result][,default])函数:当expr符合条件search时就返回result的值,类似swith-cash 例:select productname,quantity,decode(sign(quantity-100),1,‘充足‘,-1,‘不足‘,0,‘不足‘) from productinfo;
以上是关于oracle的内置函数的主要内容,如果未能解决你的问题,请参考以下文章