Oracle常用的数据操作函数

来源:互联网 发布:科蓝软件java面试题 编辑:程序博客网 时间:2024/06/05 21:53

一、字符串函数

CONCAT(char1,char2):用于将两个字符串连接在一起

|| :在数据库中||用于连接字符串,相当于java中的+,如果在连接中遇到NULL则连接一个空格


LENGTH(char):用于返回字符串的字符长度,char返回char设定的长度,VARCHAR2返回字符串的真实长度。


UPPER(char):用于将字符串转换为纯大写形式

LOWER(char):用于将字符串转换为纯小写形式

INITCAP(char):用于将字符串中每个单词的首字母大写,其他字母小写。字符与

                               字符之间是用分号隔开的输入的是NULL,则返回NULL。


TRIM(c2  FROM  c1):从c1的前后截去c2,c2只能是单一的字符(字母),不能是字符串

TRIM(c1):去除c1前后的空白

LTRIM(c1,c2):去除c1左边的c2字符

LTRIM(c1):去除c1左边的空白,等价于TRIM(leading  c1)

RTRIM(c1,c2):去除c1右边的c2字符

RTRIM(c1):去除c1右边的空白,等价于TRIM(trailing c1)


LPAD(char1,n,char2):在字符串char1的左端用char2补足到n位。

RPAD(char1,n,char2):在字符串char1的右端用char2补足到n位。


SUBSTR(char,m,n):从char字符串的m位置开始截取n个长度的子串(字符是以1开始的)

若m=0,则从首字符开始截取;若m取负数,则从尾部开始截取。

若没有n则截取到字符串末尾,若n超过了char的长度则截取到字符串末尾为止。


INSTR(char1,char2,n,m):从char1的n位置开始搜索char2在char1中第m次出现的位置。

若无m,则检索第一次出现char2的位置,未找到则返回0;


二、数学函数

ROUND(n,m):将n按m要求进行4舍5入。(m必须是整数,若缺省,则默认为0)

4舍5入有以下几种情况:

m为整数:四舍五入到小数点后的m位

m=0:四舍五入到整数位(个位)

m为负数:四舍五入到小数点前的|m|位


TRUNC(n,m):将n按m的要求截取。(m必须是整数,若缺省,则默认为0)

m为整数:保留小数点后m位

m为0:保留整数位

m为负数:保留小数点前m位


MOD(m,n):返回m除以n后的余数。若n为0时,则返回m。


CEIL(n):取大于或等于n的最小整数值

FLOOR(n):取小于或等于n的最大整数值


三、日期操作

TO_DATE:将字符串按照指定格式转换为日期格式

格式为:TO_DATE(char,fmt,nlsparams)

其中char为要转换的字符串,fmt为日期的格式,nlsparams为指定日期的语言(可以缺省)

若fmt缺省则认为使用默认日期格式:YYYY-MM-DD

两个日期是可以进行减法运算的,差值为它们相差的天数


TO_CHAR:将其他类型的数据按指定格式转换为字符串类型

格式为:TO_CHAR(date,fmt,nlsparams)

fmt和nlsparams都可以缺省

在fmt中出现的非关键字和非特殊符号需要用双引号包括起来


LAST_DAY(date):返回日期所在月的最后一天


ADD_MONTHS(date,i):返回日期加上i个月后的日期值

i可以是任何数,当为小数时,先截取其整数,再进行计算


MONTHS_BETWEEN(date1,date2):计算date1和date2之间间隔多少月

date1-date2,除非两个日期间隔为整数,否则会得到小数结果,我们只取其整数


NEXT_DAY(date,char):返回距离时间(date)最近的星期几(char)。(返回的是下一个周几,周日为1)

如果date刚好是char则返回下一周的char。

eg:SELETE  NEXT_DAY(sysdate,5)FROM  DUAL

获取距离当前时间最近的周4,若当前时间为周4,则返回下周4的日期


LEAST(expr1,expr2,...,exprn):获取列举的最小参数值

GREATEST(expr1,expr2,...,exprn):获取列举的参数最大值

参数的类型必须一致,在比较前,系统将其他参数向第一个参数类型转换,若不能转换则会报错


EXTRCT(date  FROM  datetime):从datetime中截取date指定的数据


四、空值函数

任何数据类型均可取值NULL,但NULL不等于任何值

在数据库中不能用=和!=连接NULL值,应该使用IS  NULL和NOT  NULL

NULL和任何数字运行仍为NULL,NULL与字符串连接仍为原字符串


NVL(expr1,expr2):若expr1不为NULL,则返回expr1,

                                      若expr1为NULL则返回expr2

expr1和expr2的数据类型必须一致


NVL2(expr1,expr2,expr3):若exper1为NULL则返回expr3,

                                                     若expr1不为NULL则返回expr2

expr2和expr3可以是任何数据类型

0 0