ORACLE中函数_第1页
ORACLE中函数_第2页
ORACLE中函数_第3页
ORACLE中函数_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Oracle认证专员(OCA)2.3.7 ORACLE中函数:    ORACLE已经内建了许多函数,不同的函数有不同的作用和用法,有的函数只能作用在一个记录行上,有的能够作用在多个记录行上,不同的函数可能处理不同的数据类型。常见的有两类,单行函数和分组函数。单行函数:单行函数分类函数功能示例字符函数LPAD(<c1>,<i>,<c2>)在字符串c1的左边添加字符串c2直到c1字符串的长度等于i。SELECT  LPAD(Hello!,8, ) leftpad,RPAD(Hello!,8, ) rightpadFROM

2、 DUAL;RPAD(<c1>,<i>,<c2>)在字符串c1的右边添加字符串c2直到c1字符串的长度等于i。LOWER(<c1>)把字符串c1转换为小写SELECT LOWER(ename)  one,UPPER(ename) two, INITCAP(ename) FROM EMP;UPPER(<c1>)把字符串c1转换为大写INITCAP(<c1>)把c1字符串的每一个单词的第一个字母转换成大写字母LENGTH(<c1>)返回字符串c1的长度SELECT LENGTH(How are you)

3、FROM DUAL;SUBSTR(<c1>,<i>,<j>)返回字符串c1中从第i个位置开始的j个字符(向右)。如果省略j,则返回c1中从第i个位置开始的所有字符。如果j为负,则返回字符串c1中从第i个位置开始的j个字符(向左)。SELECT SUBSTR(Hello,World,1,5) FROM DUAL;INSTR(<c1>,<c2>,<i>,<j>)在c1中从位置i开始查找c2在c1中出第j次的位置,i可以为负(此时,从c1的尾部开始)。SELECT INSTR(Mississippi,i,3,3) F

4、ROM DUAL; 返回结果11。SELECT INSTR(Mississippi,i,-2,3) FROM DUAL; 返回结果2。LTRIM(<c1>,<c2>)从c1前面开始去掉出现在c2的中任何前导字符集。SELECT LTRIM(Mississippi,Mis) FROM DUAL; 返回结果ppi。SELECT RTRIM(Mississippi,ip) FROM DUAL; 返回结果Mississ。RTRIM(<c1>,<c2>)从c1后面开始去掉出现在c2的中任何前导字符集。数学函数ABS(<n>)返回n的绝对值SEL

5、ECT ABC(-2),ABS(2) FROM DUAL;ROUND(<n1>,<n2>)将n1的小数点后保留n2位(四舍五入)并返回。如果n2小于零,n1舍入到小数点左边。SELECT ROUND(12345.678,-2),ROUND(12345.678,2) FROM  DUAL; 分别返回结果:12300,12345.68。CEIL(<n>)将n 向上取整,并返回。SELECT CEIL(5.1),CEIL(-21.4) FROM  DUAL;分别返回:6, -21。FLOOR(<n>)将n 向下取整,并返回

6、。SELECT FLOOR(5.1),FLOOR(-21.4) FROM  DUAL;分别返回:5, -22。MOD(<n1>,<n2>)返回n1模n2后的余数。SELECT MOD(14,5),MOD(8,25),MOD(-64,7) FROM DUAL;分别返回结果:4,0.5,-1。SIGN(<n>)符号函数,n>0,返回1。n<0,返回-1。n=0,返回0。SELECT SIGN(-2.3),SIGN(2.3),SIGN(0) FROM DUAL;SQRT(<n>)返回n的平方根SELECT SQRT(9) FROM

7、 DUAL;TRUNC(<n1>,<n2>)功能类似ROUND函数。但不做四舍五入。SELECT TRUNC(123.456,2),TRUNC(123.456,-1) FROM DUAL;分别返回结果:123.45、120。VSIZE(n)返回数字n的存储字节SELECT VSIZE(123) FROM DUAL;日期函数(日期可以进行算术运算)SYSDATE返回相同日期SELECT SYSDATE FROM DUAL;ADD_MONTHS(<d>,<i>)返回日期d 加上i个月后的新日期(i正可负)。SELECT SYSDATE, ADD_MO

8、NTHS(SYSDATE,2),ADD_MONTHS(SYSDATE,-2)FROM DUAL;LAST_DAY(<d>)返回日期d所在的月的最后一天。SELECT SYSDATE,LAST_DAY(SYSDATE) FROM DUALMONTHS_BETWEEN(<d1>,<d2>)返回日期d1比d2大多少月数。SELECT MONTHS_BETWEEN(19-Dec-1999,19-Mar-2000 FROM DUAL;NEW_TIME(<d>,<tz1>,<tz2>)将时区tz1的时间d,转换为时区tz2里的时间。S

9、ELECT SYSDATE,NEW_TIME(SYSDATE,CDT,PDT) FROM DUAL;NEXT_DAY(<d>,<dow>)返回日期d后的第一个dow。(dow:day of week)SELECT NEXT_DAY(SYSDATE,Monday) FROM DUAL;常用转换函数TO_CHAR(<x>,<fmt>,<nlsparm>)将x转换成字符串。(参数含义请看ORACLE的联机帮助)SELECT TO_CHAR(SYSDATE,YYYY-MM-DD) FROM DUAL;TO_NUMBER(<c>,&

10、lt;fmt>,<nlsparm>)将字符串c转换成数字。(参数含义请看ORACLE的联机帮助)SELECT TO_NUMBER(123) FROM DUAL;TO_DATE(<c>,<fmt>,<nlsparm>)(常见的日期格式请查联机帮助。)将字符串c转换成日期。SELECT TO_DATE(19-Mar-99,DD-Mon-YYYY) FROM DUAL;两个重要函数DECODE(<x>,<m1>,<r1>,<m2>,<r2>,<d>)(DECODE函数功能非常

11、强大,请仔细玩味。)一个功能非常强大的函数,它使得SQL非常高效。它的功能类似于一系列的ifthenelse语句。SELECT sid,serial#,username,DECODE(command,0,None,2,Insert,3,Select,6,Update,7,Delete,8,Drop,Other) cmdFROM V$SESSION WHERE type<>BACKGROUND;NVL(x1,x2)注意ORACLE中的NULL值,注意该函数作用如果x1为空返回x2,否则返回x1。SELECT NVL(ename,无姓名)  FROM  EMP;分组

12、函数AVG(DISTINCT|ALL<n>)求返回行的指定列的平均值SELECT AVG(sal),AVG(ALL sal),AVG(DISTINCT sal) FROM SCOTT.EMP;COUNT(*|DISTINCT|ALL<x>)统计返回的行数SELECT COUNT (*), COUNT(DISTINCT mgr),COUNT(mgr)FROM SCOTT.EMPMAX(DISTINCT|ALL<x>)求返回行的指定列的最大值SELECT MAX(sal),MAX(DISTINCT sal) FROM EMP;MIN(DISTINCT|ALL<x>)求返回行的指定列的最小值SELECT MIN(sal),MIN(DISTINCT sal) FROM EMP;STDDEV(DISTINCT|ALL<x>)求返回行的指定列的标准方差SELECT STDDEV(sal),STDDEV(DISTINCT sal) FROM EMP;SUM()求返回行的指定列的和SELECT SUM(sal) FROM EMP;VA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论