ORACLE内置函数大全

--数字类函数
1.绝对值:ABS()。用法:abs(-8)=8
2.取余数:mod(n1,n2)。用法:mod(10,6)=4,10/6=4
3.返回参数的符号:sign(n)。用法:整数返回1,0返回0,负数返回-1
4.返回参数的余弦:cos(n)
5.返回大于等于参数的最小值:ceil(n)。用法:ceil(10)=10,ceil(10.5)=11,ceil(-10.5)=-10。
6.返回平方根:sqrt(n)。用法:sqrt(100)=10
7.返回n2到n1的次幂的结果:power(n2,n1)。用法:power(5,2)=25,如果n2是负数,n1必须为整数
8.返回e的n次幂:exp(n)
9.返回n1和n2以外的任意正数:log(n1,n2)。用法:log(1,10)=55。
10.ln(n)返回n的自然对数,与log()函数类似,n要求大于0
11.四舍五入:round()
12.trunc()类似round
13.chr(n),返回n的字符集,ascii()与chr相反

--字符串类函数
14.length()获取字符串的长度
15.字符串截取:substr(字符串,起始位置【正数,从左往右截取;负数,从右往左截取】,长度【省略不写时,代表从起始位置截取到字符串结束位置】)
16.字符串链接:concat(n1,n2):相当于||
17.instr(),返回该字符是否存在于字符中的位置,不存在则返回为0:instr(字符串,要搜索的字符,搜索开始位置【正数代表从左开始,负数代表从右开始往左搜索】)
18.upper(),将字符串转为大写,lower()与upper()相反
19.initcap(),将字符串的所有单词首字母转为大写,用法:initcap('this is cat')=This Is Cat
20.nls_initcap(),类似initcap()
21.replace(),替换字符串:replace('abc123','123','efg')=abcdefg
22.字符串填充,向字符串中插入字符:rpad('abc'【源字符串】,4【字符串限定长度】,'def'【填充字符】)【从右开始填充】='abcd';lpad()与rpad相反,从源字符串左侧开始填充
23.trim()删除字符串首尾指定的字符:trim(leading【删除字符串左侧字符】/trailing【删除字符串右侧字符】/both【删除两侧字符】 字符 from 源字符串),用法:trim(trailing 't' from 'test')=tes,一般用来默认删除两侧空格
24.ltrim(字符串,删除字符),rtrim()与trim()类似

--日期类函数
25.返回当前系统日期:sysdate,该函数没有参数
26.systimestamp:与sysdate类似,可以显示到时区信息,如下午,上午等
27.add_months(date,integer【正数为加,负数为减】):将当前日期加减月份,用法:to_char(add_months(to_date('2015-10-01','YYYY-MM-dd'),2))=2015-12-01
https://www.360docs.net/doc/c44360873.html,st_day(date):返回当前月份的最后一天
29.next_day(date,char):返回当前日期向后的一周char的对应日期。用法:next_day(to_date('2015-01-01','yyyy—MM—dd'),'星期一')=2015-01-08
30.获取日期当中的指定部分,可以得到年,月,日,时,分,秒等:extract(date)。
用法 extract(year【年】/month【月】/day【日】/hour【时】/minute【【分】/second【秒】 from sysdate/[timestamp '2015-01-01 12:30:10'])
此处用to_char(sy

sdate,'yyyy')=2015更方便
31.获取两个日期间的月份数:months_between(date1,date2)=months_between('2015-02-01','2014-12-31')=2
32.round()四舍五入处理日期

--转换函数
33.二进制转十进制:bin_to_num(n)
34.数据转换:cast(n as type_name)=case('123' as integer)=123
35.数值转字符串:to_char(n)=to_char(123)='123'/to_char(to_date('2015-01-01','yyyy-MM-dd'),'month')=01
36.字符串转日期:to_date(n)=to_date('20150101','YYYY-MM-dd')=2015-01-01
37.to_number()=to_number('1000.00','9999.999')=1000.000


--空值处理
38.coalesce()类似于nvl()
39.lnnvl():返回为空的所有数据。用法:select * from table_name where lnnvl(column>10),返回column大于10包括为空的所有数据
40.nvl2():类似于nvl()。用法:nvl2(column,a,b),当column为空时返回b,不为空时返回a

--其他函数
41.返回登录名:user select user from dual;
42.返回当前用户:userenv() select userenv('scott') from dual;返回为true或者false
43.decode(),相当于case when



相关文档
最新文档