oracle中存在函数吗,Oracle中的函数
Oracle中的函数
1.单⾏函数也称标量函数,对于从表中查询的每⼀⾏,该函数都返回⼀个值.单⾏函数可⽤与select⼦句中,也可⽤于where⼦句中.单⾏函数⼤致分为:
>.⽇期函数
>.字符函数
>.转换函数
>.其他函数
1.⽇期函数
>.add_months: add_months(d,n) d是⽇期 n表⽰⽉数
select addmonths(sysdate,1) from dual;
>.months_between months_between(d1,d2) 如果d1晚与d2,则结果为正数,否则为负数.如果d1和d2为某⽉中的同⼀天后⽉份的最后⼀天,则结果为整数,否则Oracle将根据⼀个⽉31天来计算结果的⼩数部分
select months_between(date'2005-2-10',date'2007-3-10') from dual; =-25 差25个⽉
>.last_day last_day(d) 返回⽇期当⽉的最后⼀天的⽇期值
>.round round(d,[fmt]) 次函数返回⽇期值,次⽇期四舍五⼊为格式模型指定的单位.fmt为可选项,默认舍⼊最靠近的那⼀天
select round(sysdate) from dual; 结果为sysdate当天的⽇期
select round(sysdate,'year') from dual; 如果sysdate中的⽉在7⽉1⽇之后则返回下⼀年的1⽉1⽇,否则为当年的1⽉1⽇
select round(sysdate,'month') from dual; 舍⼊到⽉的第⼀⽇
select round(sysdate,'day') from dual; 最近的星期⽇
>.trunc trunc(d,[fmt])与round不同的是:他只舍不⼊
select trunc(date'2005-8-27','year') from dual; =2005-1-1
>.next_day next_day(d,day) d表⽰⽇期,day表⽰⼀周中的任何⼀天.
select next_day(sysdate,'星期⼆') from dual; 结果为sysdate后的第⼀个星期⼆,参数'星期⼆'也可以⽤整数3表⽰.
>.extract extract(fmt from d) 提取⽇期中的特定部分.
select extract(year from date'2005-2-10') from dual; 结果为2005
注意次处的fmt不要使⽤''
2.字符函数
函数
说明
输⼊
输出结果
Initcap(char)
⾸字母⼤写
select initcap(‘hello’) from dual;
Hello
Lower(char)
转换为⼩写
select lower(‘FUN’) from dual;
fun
Upper(char)
转换为⼤写
select upper(‘sun’) from dual;
SUN
Ltrim(char,set)
左裁减,set不写默认裁减空格
select ltrim(‘xyzabc’,’xyz’) from dual;
abc
Rtrim
和左裁减相反
Select rtrim(‘xyzabc’,’abc’) from dual;
Xyz
Translate(char,from,to)
按from到to的翻译模式,去匹配char中存在的字符并替换Select translate(‘jack’,’abcd’,’1234’) from dual; J13k
Replace(char,search_str,replace_str)
在char中查srearch_str并替换成replace_str
Select replace(‘abcd’,’ab’,’fg’) from dual;
Fgdc
Instr(char,substr)
oracle四舍五入查⼦串位置:从1开始,未到时为0
Select instr(‘worldwide’,’d’) from dual;
5
Substr(char,pos,len)
从pos位置开始,取len的长度
Select substr(‘abcd’,2,2) from dual;
Concat(char1,char2)
连接字符串
Select concat(‘hello’,’world’) from dual;
helloworld
其他字符函数:
chr(ASCII):
根据acsii码返回对应的字符
Lpad(char,len,to):
指定长度为len,不够长就在左边⽤to填充,若char的长度⼤于len,则取左边的指定len,右边舍掉,如:
select lpad('function',15,'=') from dual; 结果:======function 若:
select lpad('function',5,'=') from dual;结果funct 取5个的长度
Rpad和Lpad正好相反.
trim和ltrim和rtrim⼀样,trim舍去左右两边的 默认也为舍去空格.
当指定leading 选项时,与Ltrim类似,裁减左边的字符
select trim(leading 9 from 9992434999) from dual;结果2435999 开头的9被去掉了,⼀旦遇到9以外的数字,将停⽌操作当指定trailing选项时,则正好与leading 相反
select trim(trailing 9 from 9992434999) from dual;结果9992434
当不指定时 去掉左右两边的字符
select trim(9 from 9992434999) from dual;结果2434
decode(expr,search1,result1,search1,result2)
与translate不同的是,decode进⾏逐⾏逐个值的替换,translate进⾏逐⾏逐个字符的替换
数字函数
函数
说明
输⼊
结果
Abs(n)
取绝对值
Select abs(-15) from dual;
15
Ceil(n)
向上取整(⼤于n的最⼩整数)
Select ceil(15.1) from dual;
Sin(n)
正⽞
Select sin(1.571) from dual;
0.99999979
Cos(n)
余⽞
Select cos(0) from dual;
1
Sign(n)
取符号(正返回1,负返回-1)
Select sign(-15) from dual;
-1
Floor(n)
向下取整(不⼤于n的最⼤整数)
Select floor(100.2) from dual;
100
Power(m,n)
M的n次幕
Select power(4,3) from dual;
64
Mod(m,n)
取m除n的余
Select mod(10,3) from dual;
1
Round(m,n)
四舍五⼊⼩数位为n
Select round(100.245,2)from dual 100.25
Trunk(m,n)
截断⼩数位为n只舍不⼊
Select trunk(100.245,2) from dual 100.24
Sqrt(n)
Select sqrt(4) from dual 2
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论