Oracle常用函数

Oracle常用函数

1.字符类函数

        字符类函数是专门用于字符处理的函数,处理的对象可以是字符或字符串常量,也可以是字符类型的列。dual表是Oracle系统内部提供的一个用于实现临时数据计算的特殊表,它只有一个列DUMMY,类型为VARCHAR2(1)。

 

ASCII(c)函数和CHR(i)函数:

ASCII(c)函数用于返回一个字符的ASCII码,其中参数c表示一个字符;CHR(i)函数用于返回给出ASCII码值所对应的字符,i表示一个ASCII码值。从这两个函数的功能中可以看出,它们二者之间具有互逆的关系。



 
CONCAT(s1,s2)函数:

该函数将字符串s2连接到字符串s1的后面,如果s1为null,则返回s2;如果s2为null,则返回s1;如果s1和s2都为空,则返回null。

 

SQL>select concat(‘Hello ’, ‘World’) from dual;
SQL>Hello World

 

 

INITCAP(s)函数:

该函数将字符串s的每个单词的第一个字母大写,其他字母小写。单词之间用空格、控制字符、标点符号来区分。

 

SQL>select initcap(‘oh my god!’) from dual;
SQL>Oh My God!

 

 

INSTR(s1,s2[,i][,j])函数:

该函数用于返回字符串s2在字符串s1中第j次出现时的位置,搜索从字符串s1的第i个字符开始。当没有发现要查找的字符时,该函数返回值为0;如果i为负数,那么搜索将从右到左进行,但函数的返回位置还是按从左到右来计算。其中,s1和s2均为字符串;i和j均为正整数,默认值为1(起始位置为1)。例,在字符串“oracle 11g”中,从第3个字符开始查询字符串“1”第2次出现的位置:

 

SQL>select instr(‘oracle 11g’, ‘1’,3,2) from dual;
SQL>9

 

 

LENGTH(s)函数:
该函数于返回字符串s的长度,如果s为null。则返回值为null。例,通过使用leng函数返回雇员名称长度大于5的雇员信息及所在部门信息:


Oracle常用函数_第1张图片
 

LOWER(s)函数和UPPER(s)函数:

两个函数分别用于返回字符串s的小写形式和大写形式,这两个函数经常出现在WHERE子句中。例,在HR模式下,在employees表中检索雇员名称以字母“a”开头的员工信息,并将first_name字段的值 转换为小写,将last_name的值转换为大写:


Oracle常用函数_第2张图片
 

LTRIM(s1,s2)函数、RTRIM(s1,s2)函数和TRIM(s2 from s1)函数:

这3个函数分别用来删除字符串s1左边的字符串s2、删除字符串s1右边的字符串s2,删除字符串s1左右两端字符串s2。如果在这3个函数中不指定字符串s2,则表示去除相应方位的空格。例,使用LTRIM、RTRIM和TRIM分别去掉字符串“##East##”、“East  ”、“##East##”中左侧“#”、右侧空格和左右两侧的“#”:

 

SQL>select ltrim(‘##East##’, ‘#’),rtrim(‘East  ’),trim(‘#’ from ‘##East##’) from dual;
SQL>East## East East

 

 

REPLACE(s1,s2[,s3])函数:

该函数使用s3字符串替换出现在s1字符串中的所有s2字符串,并返回替换后的新字符串,其中,s3的默认值为空字符串。

 

SQL>select replace(‘Bad luck bad Gril’, ‘Bad’, ‘Good’) from dual;
SQL>Good Luck Bad Girl

 

 

SUBSTR(s,i,[j])函数:

该函数表示从字符串s的第i个位置开始截取长度为j的子字符串。如果省略参数j,则直接截取到尾部。其中,i和j为正整数。

 

SQL>select substr(‘MessageBox’,8,3) from dual;
SQL>Box

 

 

2.数字类函数

        数字类函数主要用于执行各种数据计算,所有的数字类函数都有数字参数并返回数字值。Oracle系统提供了大量的数字类函数,这些函数大大增强了Oracle系统的科学计算能力。

 

函数 说明
ABS(n) 返回n的绝对值
CEIL(n) 返回大于或等于数值n的最小整数
COS(n) 返回n的余弦值,n为弧度
EXP(n) 返回e的n次幂,e=2.71828183
FLORR(n) 返回小于或等于n的最大整数
LOG(n1,n2) 返回以n1为底的n2的对数
MOD(n1,n2) 返回n1除以n2的余数
POWER(n1,n2) 返回n1的n2次方
ROUND(n1,n2) 返回舍入小数点右边n2位的n1的值,n2的默认值为0,这会返回小数点最接近的整数。如果n2为负数,就会舍入到小数点左边相应的位上,n2必须是整数
SIGN(n1,n2) 若n为负数,则返回-1,若n为正数,则返回1,若n=0,则返回0
SIN(n1,n2) 返回n的正弦值,n为弧度
SQRT(n1,n2) 返回n的平方根,n为弧度
TRUNC(n1,n2) 返回结尾到n2位小数的n1的值,n2默认设置为0,当n2为默认设置时,会将n1截尾为整数,如果n2为负值,就截尾在小数点左边相应的位上

 

使用CEIL(n)函数返回3个指定小数的整数值:

 

SQL>select ceil(7.3),ceil(7),ceil(-7.3) from dual;
SQL>8 7 -7 


使用ROUND(n1,n2)函数返回指定位数的整数或小数

SQL>select round(3.1415926),round(123.321,-2),round(123.321) from dual;
SQL>3.14 100 123 

使用POWER函数计算2的3次方:
SQL>select power(2,3) from dual;
SQL>8
 

 

3.日期和时间类函数

        在Oracle 11g中,系统提供了许多用于处理日期和时间的函数,通过些函数可以实现计算需要的特定日期和时间。日期类型的默认格式是“DD-MON-YY”,其中DD表示两位数字的“日”,MON表示3位数字的“月份”,YY表示两位数字的年份,例如:“01-10月-11”。

 

函数 说明
ADD_MONTHS(d,i) 返回日期d加上i个月之后的结果。其中,i为任意整数
LAST_DAY(d) 返回包含日期d月份的后一天
MONTHS_BETWEEN(d1,d2) 返回d1d2之间的数目,若d1d2的日期都相同,或者都是该月的最后一天,则返回一个整数,否则返回的结果将包含一个小数
NEW_TIME(d1,t1,t2) 其中,d1是一个日期数据类型,当时区中t1的日期和时间是d1时,返回时区t2中的日期和时间。t1t2是字符串
SYSDATE() 返回系统当前的日期

 

使用SYSDATE函数返回当前系统的日期:

 

SQL>select sysdate from dual;
SQL>19-2月 -16

 
使用ADD_MONTHS函数在当前日期下加上8个月:

 

SQL>select add_months(sysdate,8) from dual;
SQL>19-12月-16 

 

4. 转换类函数

        在操作表中的数据时,经常需要将某个数据从一种类型转换为另一种数据类型,这时就需要转换类型函数。比如常见的,有把具有“特定格式”字符串转换为日期、把数字转换成字符等。

 

函数 说明
CHARTORWIDA(s) 将字符串s转换为RWID数据类型
CONVERT(s,aset[,bset]) 将字符串sbset字符集转换为aset字符集
ROWIDTOCHAR() ROWID数据类型转换为CHAR类型
TO_CHAR(x[,format]) 将表达式转换为字符串,format表示字符串格式
TO_DATE(s[,format[lan]]) 将字符串s转换为date类型,format表示字符串格式,lan表示所使用的语言
TO_NUMBER(s[,format[lan]]) 该函数将返回字符串s代表的数字,返回值按照format格式进行显示,format表示字符串格式,lan表示所使用的语言

 

使用TO_CHAR函数转换系统日期为“YYYY-MM-DD”格式:

 

SQL>select sysdate,to_char(sysdate, ‘YYYY-MM-DD’) from dual;
SQL>19-2月 -16 2016-02-19 

 

使用TO_NUMBER函数把十六进制数“18f”转换为十进制数:

 

SQL>select to_number(‘18f’, ‘xxx’) from dual;
SQL>399

 

 

5. 聚合类函数

        使用聚合类函数可以针对一组数据进行计算,并得到相应的结果。比如常用的操作有计算平均值、统计记录数、计算最大值等。

 

函数 说明
AVG(x[DISTINCT|ALL]) 计算选择列表项的平均值,列表项目可以是一个列或多个列的表达式
COUNT(x[DISTINCT|ALL]) 返回查询结果中的记录数
MAX(x[DISTINCT|ALL]) 返回选择列表项目中的最大数,列表项目可以是一个或多个列的表达式
MIN(x[DISTINCT|ALL]) 返回选择列表项目中的最小数,列表项目可以是一个或多个列的表达式
SUM(x[DISTINCT|ALL]) 返回选择列表项目的数目总和,列表项目可以是一个或多个列的表达式
VARIANCE(x[DISTINCT|ALL]) 返回选择列表项目的统计方差,列表项目可以是一个或多个列的表达式
STDDEV(x[DISTINCT|ALL]) 返回选择列表项目的标准偏差,列表项目可以是一个或多个列的表达式

 

使用COUNT函数计算员工总数,使用AVG函数计算平均工资:

 

SQL>select count(empno),round(avg(sal),2) from emp;
SQL>14 2073.21

你可能感兴趣的:(oracle,函数)