Oracle中常用函数

来源:互联网 发布:查看外网端口是否禁用 编辑:程序博客网 时间:2024/06/12 00:21
A.字符函数
1.ASCII(x):返回字符x的ASCII码(select ascii('a') from dual;结果(97))。
2.Concat(x,y):连接字符串x和y(select concat(1,'a') from dual;结果(1a))。
3.Instr(x,str[,start][,n):在x中查找str,可以指定从start开始,也可以指定从第n次开始(select instr('hello word','e') from dual;结果(2))。
4.Length(x):返回x的长度(select length('hello') from dual;结果(5))。
5.Lower(x):x转为小写(select Lower('aa') from dual;结果(aa))。
6.Upper(x):x转为大写(select upper('aa') from dual;结果(AA))。
7.Ltrim(x[,trim_str]):把x的左边截去trim_str字符串.缺省截去空格(select ltrim('ssshello','s') from dual;结果(hello);select ltrim('s ssshello','s') from dual;结果(ssshello))。
8.Rtrim(x[,trim_str]):把x的右边截去trim_str字符串.缺省截去空格(select Rtrim('helloss','s') from dual;结果(hello);select rtrim(ssshellos ss','s') from dual;结果(ssshellos))。
9.Trim([trim_str from] x):把x的两边截去trim_str字符串,缺省截去空格(select trim('a' from 'aha') from dual;结果(h))。
10.Replace(x,old,new):在x中查找old,并替换为new(select replace('hallo','a','e') from dual;结果(hello))。
11.Substr(x,start[,length]):返回x的字符串,从start处开始,截取length个字符,缺省length,默认到结尾(select substr('hello',2) from dual;结果(ello);select substr('hello',2,3) from dual;结果(ell))。
B.数字函数
1.ABS(x):x绝对值(ABS(-1)=1)。
2.ACOS(x):x的反余弦(ACOS(1)=0)。
3.COS(x):余弦(COS(1)=1.57079633)。
4.Ceil(x):大于或等于x的最小值(select ceil(5.1) from dual;结果(6))。
5.Floor(x):小于或等于x的最大值(select floor(5.2) from dual;结果(5))。
6.Log(x,y):x为底y的对数(log(10,100)=2)。
7.Mod(x,y):x除以y的余数(Mod(1,4)=1)。
8.Power(x,y):x的y次幂(Power(2,3)=8)。
9.Round(x[,y]):x在第y位四舍五入,缺省y时,默认y=0(Round(3.52)=4,Round(3.22)=3);
y是正整数,四舍五入到小数点后y位(Round(3.5223,2=3.52,Round(3.5262,2)=3.53));
y是负整数时,四舍五入到小数点左边|y|位(Round(351.654,-1)=350,Round(351.654,-2)=400,Round(321.654,-2)=300,Round(351.654,-3)=0,Round(751.654,-3)=1000)。
10.Sqrt(x):x的平方根(Sqrt(4)=2)。
11.Trunc(x[,y]):x在第y位截断,直接截取不四舍五入(y=0时,Trunc(3.456)=3);
y是正整数时(Trunc(3.456,2)=3.45);
y是负整数时(Trunc(3.456,-1)=0,Trunc(56.25,-1)=50)。
C:日期函数
1.ADD_Months(d,n):在某一日期d上,加上指定的月数n,返回计算后的新日期。d表示日期,n表示要加的月数。
select add_months(to_date('2010-10-20','yyyy-MM-dd'),5) from dual;结果(2011-3-20)。
2.Last_day(d):返回指定日期当月的最后一天。
select last_day(to_date('2010-3-20','yyyy-MM-dd')) from dual;结果(2010-3-31)。
3.Round(d[,fmt]):返回一个fmt为格式的四舍五入的日期值,d是日期,fmt是格式模型。默认fmt为DDD,即当月中的某一天[
(1)如果fmt为"Year",舍入到某年的1月1号(
select round(to_date('2010-3-20','yyyy-MM-dd'),'Year') from dual;结果(2010/1/1),
select round(to_date('2010-7-20','yyyy-MM-dd'),'Year') from dual;结果(2011/1/1),
);
(2)如果fmt为"Month",舍入到某年的1月1号(
select round(to_date('2010-5-20','yyyy-MM-dd'),'Month') from dual;结果(2010/6/1),
select round(to_date('2010-5-12','yyyy-MM-dd'),'Month') from dual;结果(2010/5/1),
)
(3)如果fmt为"DAY",舍入到最近的周的周日,上半周射去,下半周作为下一周周日。
(4)如果fmt为默认"DDD",月中的某一天(
select round(to_date('2010-3-20 13:20:22','yyyy-MM-dd HH24:mi:ss'),'DDD') from dual;结果(2010/3/21),
select round(to_date('2010-3-20 10:20:22','yyyy-MM-dd HH24:mi:ss'),'DDD') from dual;结果(2010/3/20)
)
]。(Trunc和Round一样,Trunc对日期不进行舍入,直接截取对应格式的某一天。)
4.To_Char(d[,fmt]):日期格式化字符串,日期转换字符串。
select to_char(sysdate,'YYYY"年"MM"月"DD"日" HH24:MI:SS') from dual;
5.To_Date(x[,fmt]):将一个字符串转换为日期类型。
select to_date('2010-1-2','yyyy-MM-dd')) from dual;
6.To_Number(x[,fmt]):把一个字符串以fmt格式转换为一个数字。
select to_number('-$1235.67','$99999.99') from dual;
7.Extract(fmt from d):提取日期中的特定部分(fmt为:Year,Month,Day,Hour,Minute,Second。其中Year,Month,Day可以为DATE类型匹配,也可以与Timestamp类型匹配;但是Hour,Minute,Second必须与TimesTamp类型匹配)。
select sysdate,Extract(Year from sysdate),Extract(month from sysdate),Extract(day from sysdate),Extract(Hour from sysTimestamp),
Extract(Minute from sysTimestamp),Extract(Second from sysTimestamp) from dual。
8.Nvl(x,value):如果x为空,返回value,否则返回x。
select Ename,Nvl(Comm,100) from scott.emp;
9.Nvl(x,value1,value2):如果x不为空,返回value,否则返回value2。
select Ename,Nvl2(Comm,Comm+100,200) from scott.emp;
D:聚合函数
1.AVG(表达式):平均值。
2.SUM(表达式):求和。
3.Min、Max(表达式):最小值,最大值。
4.Count(表达式):数量。
原创粉丝点击