SQL内置函数

来源:互联网 发布:四川师范大学网络教育 编辑:程序博客网 时间:2024/05/16 12:52
SQL内置函数
      ABS
 ABS函数返回一数值的绝对值。负数将舍去其负号。下面是它的语法格式:
 ABS(number)
 其中,number是希望得到其绝对值的数值
 ABS函数截去数值的符号。如下例所示:
 ABS(5)=5
 ABS(5)=5
 不管是5还是-5,其绝对值均为5
SQL内置函数
      ACOS
 ACOS函数返回一数值的反余弦值。结果以弧度表示,且在0PI之间。
 其语法格式如下:
 ACOS(number)
 其中,number必须是-11之间的值
 下面的例子显示了1-1 的反余弦值:
 ACOS(1)=0
 ACOS(-1)=3.1415927(PI)
SQL内置函数
       ADD_MONTHS
 ADD_MONTHS函数将一个日期上加上一指定的月份数所以日期中的日将是不变的。然而,如果开始日期是某月的最后一天,那么,结果将会调整以使返回值仍对应新的一月的最后一天。如果,结果月份的天数比开始月份的天数少,那么,也会向回调整以适应有效日期。其语法格式如下:
   ADD_MONTHS(date,months)
   其中:
   date 一个日期数值
   months   要加上的月份数。要减去的月份数用负数
   下面的例子解释了该函数的使用:
   ADD_MONTHS(TO_DATE(15-Nov-1961,d-mon-yyyy),1)   =15-Dec-1961
   ADD_MONTHS(TO_DATE(30-Nov-1961,d-mon-yyyy),1)   =31-Dec-1961
   ADD_MONTHS(TO_DATE(31-Jan-1999,d-mon-yyyy),1)   =28-Feb-1999
   注意,在上面的第三个例子中,函数将不得不将31日往回调整为28日,已使结果对应新一月的最后一天。因为,1999年的2月份只有28天。在第二个例子中,则是从30往后调整为31,也同样是为了保持对应的最后一天。
SQL内置函数
      ASCII
 ASCII函数返回你指向的字符串首字母的十进制表示代表码值。该返回值或许是ASCII码值,也或许不是。如果用户的数据库字符集是7位的ASCII值,那就得到一ASCII码值。该返回值总是以用户使用的字符集为基础的。
 ASCII(string)
 其中:string一个字符串。更多的时候就是一字符
 下面的例子解释了该函数的使用:
 ASCII(j)=74
 ASCII(jeff)=74
 从上面的第二个例子,我们不难看出,如果指定了一个多字符串,该函数将忽略除首字母外的所有字符。
SQL内置函数
      ASIN
 ASIN函数返回一数值的反正弦值。结果以弧度表示,且在-PI/2PI/2之间。
 其语法格式如下:
 ASIN(number)
 其中:number必须是-11之间的值
 下面的例子显示了1-1的反正弦值:
 ASIN(1)=1.57
 ASIN(-1)=-1.57
SQL内置函数 
      ATAN
 ATAN函数返回一数值的反正切值。结果以弧度表示,且在-PI/2PI/2之间。
 其语法格式如下:
 ATAN(number)
 其中:number必须是-11之间的值
 下面的例子显示了1-1 的反正切值:
 ATAN(1)=0.7854
 ATAN(-1)=-0.7854
SQL内置函数
      ATAN2
 ATAN2函数返回两个数值的反正切值。结果以弧度表示。
 其语法格式如下:
 ATAN2(first,second)
 其中
 first   第一个数
 second 第二个数
 函数ATAN2(first,second)与函数TAN(first/second)的功能是相同的。
 下面的例子显示了1-1的反正切值:
 ATAN2(1,.5)=1.107
 TAN(1/.5)=1.107
SQL内置函数
      BFILENAME
 BFILENAME函数返回一指向磁盘的物理文件的BFILE地址。
 其语法格式如下:
 BFILENAME(directory,filename)
 其中:
 directory    一个包括指定文件的目录路径字符串。       该目录通过命令CREATE DIRECTORY产生。        但它不是一个操作系统目录
 filename    指定目录中用户试图指定的文件名字。     该文件可以是预先不存在的文件
 下面的例子解释了BFILENAME函数的使用情况:
 BFILENAME(gif_dir,book_photo.gif)
SQL内置函数
       CEIL
   CEIL函数根据输入值返回一个数值。输入参数可以是非整数值,但返回结果则是大于等于输入参数的最小整数。
   其语法格式如下:
   CEIL(number)
   其中:
   number   任意数值,十进制数
   下面的例子解释了CEIL函数的使用情况:
   CEIL(5.1)=6
   CEIL(-5.1)=-5
   应注意,对于负数使用该函数的结果。大于等于-51的最小整数精确地讲应该是-5。这是数学上的情况,但首先也是记数中知觉上的感觉。
SQL内置函数
       CHARTOROWID
   CHARTOROWID函数将一个字符串转换成rowid类型。
   其语法格式如下:
   CHARTOROWID(string)
   其中:
   string   待处理的字符串。该字符串应该能表示一个有效的        rowid型数据
   下面的例子解释了CHARTOROWID函数的使用情况:
   SQL>SELECT ROWID FORM dual;
   ROWID
   ----------
   AAAADCAABAAAAVUAAA
   SQL>SELECT * FORM dual
    2 WHERE ROWID=CHARTOROWID(AAAADCAABAAAAVUAAA);
   D
   -
   X
SQL内置函数
       CHR
 CHR函数就相应的数据库字符集,返回一个指定数值相应的字符。例如,给定一个ASCII值,使用CHR函数返回该数值表示的字符。
   其语法格式如下:
   CHR(integer[USING NCHAR_CS])
   其中:
   integer      在相应的字符集中,代表对应字符          的整数类型
   USING NCHAR_CS   指明相应的字符集
   下面的例子解释了CHR函数的使用情况:
   CHR(10)=a tab character
   CHR(65)=A
   这些例子假设基于ASCII字符集
SQL内置函数
      CONCAT
 CONCAT函数将两个输入字符串,组合成一个,并返回结果。
 其语法格式如下:
 CONCAT(string_1,string_2)
 其中:
 string_1 第一个字符串
 string_2 第二个字符串。该字符串将被拼接在第一      个字符串的尾部
 下面的例子解释了CONCAT函数的使用情况:
 CONCAT(This is,a test)=This is a test
SQL内置函数
       CONVERT
 CONVERT函数把一字符串从一个字符集转换到另一字符集。
   其语法格式如下:
   CONVERT(string,dest_char_set[,source_char_set])
   其中
   string       待转换的字符串
   dest_char_set 目标字符串
   source_char_set 源字符集。省略默认数据库字符集
   下面的例子解释了CONVERT函数的使用情况
   CONVERT(Jonathan,WE8EBDIC37C,US7ASCII)
   CONVERT(Jonathan,WE8ROMAN8)
   第一个例子从US7ASCII字符集转换。第二个例子从默认数据库字符集转换。
SQL内置函数
      COS
 COS函数返回一角度的余弦值。结果为弧度值。
 其语法格式如下:
 COS(angle)
 其中:
 angle   角度值,用弧度表示
 下面的例子解释了COS函数的使用情况:
 COS(90*3.14/180)=.000796
 COS(0)=1
SQL内置函数
      COSH
 COSH函数返回一角度的双曲余弦值。
 其语法格式如下:
 COSH(angle)
 其中:
 angle   角度值,以弧度表示
 下面的例子解释了COSH函数的使用情况:
 COSH(0)=1
 COSH(90*3.14/180)=2.507
 将角度值转化成弧度值,可以参考COS函数的有关部门信息
SQL内置函数
       DECODE()
   DECODE函数相当于一条件语句(IF).它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值。区别于SQL的其它函数,DECODE函数还能识别和操作空值。
   其具体的语法格式如下:
   DECODE(input_value,value,result[,value,result][,default_result]);
   其中:
   input_value         试图处理的数值。DECODE函数将该数值与一系列的序偶相比             较,以决定最后的返回结果
   value      是一组成序偶的数值。如果输入数值与之匹配成功,则相应             的结果将被返回。对应一个空的返回值,可以使用关键字            NULL于之对应
   result     是一组成序偶的结果值
   default_result 未能与任何一序偶匹配成功时,函数返回的默认值
   下面的例子说明了,人们如何读取用户CHECKUPSEAPARK中的BLOOD_TEST_FLAG列下的项目,作为DECODE函数的实参支持值。
   SELECT checkup_type,
     DECODE(blood_test_flag,Y,Yes,N,No,NULL,None,
     Invalid)
   FROM    checkup;
SQL内置函数
       DECODE()
 这个SQL语句展示了DECODE函数的左右基础功能特征。函数的输入值时BLOOD_TEST_FLAG列的数据,如果该列的值是Y,那么,函数返回YES。如果该列的值是NULL,那么,函数返回None。如果没有与任何一个序偶匹配成功,则表示该列当前值无效,函数返回Invalid
   在SQL疑难问题中,DECODE函数常常发挥非常灵活的作用。其中的一个技术就是为了某种目的可以将一个表的行转换成列。例如
   SQL>SELECT TO_CHAR(TRUNC(BIRTH_DATE,YEAR),YYYY),
   2    COUNT(*)
   3 FROM AQUATIC_ANIMAL
   4 WHERE TO_CHAR(TRUNC(BIRTH_DATE,YEAR),YYYY)
   5    IN(1995,1996,1997)
   6 GROUP BY TO_CHAR(TRUNC(BIRTH_DATE,YEAR),YYYY);
   TO_C COUNT(*)
   --- -------
   1995     1
   1996     3
   1997     1
  
SQL内置函数
 该例告诉我们,199519961997年各出生了多少动物。每一行显示不同的年。一旦希望将这些数值显示成3列,该如何处理?可以通过如表B-1所示的方法处理之。
SQL内置函数
      EMPTY_BLOB
 EMPTY_BLOB函数返回一空的BLOB指针该指针可以用在INSERTUPDATE命令中以初始化BLOB列项。
 其具体的语法格式如下:
 EMPTY_BLOB()
 该函数没有参数。下面的例子说明了如何使用该函数初始化BLOB列,并作为一个新行插入到表中。
 INSERT INTO some_table
 (blob_column)
 VALUE(EMPTY_BLOB());
SQL内置函数
      EMPTY_CLOB
 EMPTY_CLOB函数与EMPTY_BLOB函数的功能类似只不过对应CLOB而已。它返回一空的CLOB指针该指针可以用在INSERTUPDATE命令中以初始化CLOB列。
 其具体的语法格式如下:
 EMPTY_CLOB()
 该函数没有参数。下面的例子说明了如何使用该函数初始化CLOB列,并作为一个新行插入到表中。
 INSERT INTO some_table
 (clob_column)
 VALUE(EMPTY_CLOB());
 
SQL内置函数
      EXP
 EXP函数返回e的一个幂。在数学上e经常被用来表示一指定的特殊数值(一个十进制的无限数)2.178,它是数学的基础。其具体的语法格式如下:
 EXP(exponent)
 其中:
 exponent 返回e的少次(exponent)幂
 下面是该函数的使用情况:
 EXP(1)=2.7182818
 EXP(3)=20.085537(2.7182818*2.7182818*2.7182818)
SQL内置函数
       FLOOR
   FLOOR函数返回一个小于或等于给定十进制数的最大整数。该函数的工作机制与函数CEIL的情况极为相似,但却正好相反。
   其具体的语法格式如下:
   FLOOR(number)
   其中:
   number   任意数,包括十进制数
   下面是该函数的使用情况:
    FLOOR5.1=5
    FLOOR-5.1=-6
   为了理解函数FLOOR和函数CEIL在处理负数时的不同机制,可以比较函数FLOOR5.1)和函数CEIL(-5.1)的执行结果。
SQL内置函数
       GREATEST
   GREATEST函数返回一数值列表中的最高数值。可使用GREATEST函数处理数字数据和字符数据。
   其具体的语法格式如下:
   GREATEST(value,value,value,
   其中:
   value 数字数据或文本数据。一般地,所有数值的类型应该一致。        如果给定的数据类型相混,返回值将匹配第一个参数类型,       其余的所有参数自然被转换成对应的类型
   下面是该函数的使用情况:
   GREATEST(1,3,9,45,93,2,-100)=93
   GREATEST(Jenny,Jeff,Ashley)= Jenny
   GREATEST(11,101)=11
   第三个例子反映了参数类型相混时的函数处理情况。因为第一的数据类型是字符串,所以,Oracle将数字1转换成字符串1,以匹配对应的数据类型。虽然在数值上101大于11,但如果都转换成字符串,则结果正好相反。这种情况下,11大于101,并且,也是函数的返回结果。
 
SQL内置函数
       HEXTORAW
   函数HEXTORAW将一个由十六进制字符组成的字符串转换成一个raw数值。
   其具体的语法格式如下:
   HEXTORAW(string)
   其中
   string   十六进制字符组成的字符串数据
SQL内置函数
      INITCAP
 INITCAP函数接收一字符串,并转换该字符串中的所有单词,以使各单词均以大写字母开头。
 其的语法格式如下:
 INITCAP(string)
 其中:
 string 任意一VARCHAR2CHAR型数据
 下面是该函数的使用情况。
 INITCAP(This is a test=This is a test
SQL内置函数
       INSTR
   函数INSTR会告诉用户,其中的一个字符串(参数)是否在另一个字符串(也是参数)当中。
   其具体的语法格式如下:
   INSTR(string,substring[,start[,occurrence]])
   其中
   string   待查询的字符串
   substring 正在搜索的字符串
   start 说明开始搜索的字符位置。默认值是1,就是说       索将从字符串的第一个字符开始。如果,参数为负   则表示搜索的位置从右边开始计算,而不是默认的        从左边开始
   occurrence   指定试图搜索的子串的第几次出现,默认值是1,意       味着希望其首次出现
   该函数反馈一索引顺序值,在该位置发现了要搜索的子串。下面的例子指出了INSTR函数的使用情况:
   INSTR(AAABAABA,B)=4
   INSTR(AAABAABA,B,1,2)=7
SQL内置函数
       INSTRB
   该函数与INSTR的功能极为类似,也将反馈其中的一个字符串(参数)是否在另一个字符串(也是参数)当中。只是该函数返回的是一字节索引位置,而不是一字符索引位置。其实,仅仅在多个字符集同时被使用时,这种不同才有意义。
   其具体的语法格式如下:
   INSTRB(string,substring[,start[,occurrence]])
   其中
   string   待查询的字符串
   substring 正在搜索的字符串
   start 说明开始搜索的字符位置。默认值是1,就是说搜索将从字       符串的第一个字符开始。如果,参数为负则表示搜索的位置从     右边开始计算,而不是默认的从左边开始
   occurrence   指定试图搜索的子串的第几次出现,默认值是1,意味着希望       其首次出现
   该函数反馈一索引顺序值,在该位置发现了要搜索的子串。下面的例子指出了INSTRB函数的使用情况:
   INSTRB(AAABAABA,B)=4
   INSTRB(AAABAABA,B,1,2)=7
SQL内置函数
      LAST_DAY
 函数LAST_DAY返回实参数指定日期对应月份的最后一天。其具体的语法格式如下:
 LAST_DAY(date)
 其中
 date 一日期数值
 下面是该函数的使用情况:
 LAST_DAY(TO_DATE(29-Dec-1988,dd-mon-yyyy))
    =31-Dec-1988
 LAST_DAY(TO_DATE(1-Feb-2000,dd-mon-yyyy))
    =29-Feb-2000
SQL内置函数
       LEAST
   LEAST函数返回参数给定的数值列表中的最小值。对数值数据或字符串数据均有效。
   其具体的语法格式如下:
   LEAST(value,value,value,
   其中:
   value 一数字或文本数值。尤其要注意的是所有的数据类        型应该一致。如果类型相混,返回值将匹配第一个   参数的数据类型,而且,其它所有的参数均被转换        成该参数的数据类型
   下面是该函数的使用情况:
   LEAST13945932-100=-100
   LEAST(Jenny,Jeff,Ashley)=Ashley
   LEAST(110,12)=110
   第三个例子说明了,当参数的数据类型相混时函数的处理机制。因为第一个参数实字符串,所以,将数字1转换成字符串1,一匹配对应的数据类型。虽然在数值上110大于12,但如果都转换成字符串,则结果正好相反。这种情况下,12大于110(一顺序为基础),这就是函数的返回结果。
SQL内置函数
      LENGTH
 LENGTH函数返回字符串的长度。
 其具体的语法格式如下:
 LENGTH(string)
 其中
 string 任意字符串
 下面是该函数的使用情况:
 LENGTH(This is short=13
 LENGTH(This is a bit longer=20
SQL内置函数
      LENGTHB
 LENGTHB函数返回字符串的长度。但在多字符集同时使用时会有所区别。
 其具体的语法格式如下:
 LENGTHB(string)
 其中
 string 任意字符串
 下面是该函数的使用情况:
 LENGTHB(This is short=13
 LENGTHB(This is a bit longer=20
 
SQL内置函数
      LN
 函数LN返回一数值的自然对数。
 其具体的语法格式如下:
 LN(number)
 其中
 number 大于0的任意数值
 下面是该函数的使用情况:
 LN10=2.3025851
 EXP(2.3025851)=10
 可见,将函数LN的结果作为参数,通过再调用函数EXP可得到函数LN的原参数值。
SQL内置函数
      LOG
 LOG函数返回数值的非自然对数。
 其具体的语法格式如下:
 LOG(logbase,number)
 其中
 logbase 10以外的任意数值,是对数的底
 number 及对数的真数
 下面是该函数的使用情况:
 LOG10100=2
 LOGEXP(1),10=2.3025851=LN(10)
 因为102等于100,所以,以10为底时100的对数是2。注意:LOGe,x=LN(x).可以使用EXP(1)得到e的值。
SQL内置函数
      LOWER
 函数LOWER返回参数指定字符串的小写形式。
 其具体的语法格式如下:
 LOWER(atring)
 其中
 string 任意VARCHAR2型或CHAR型的数值   
 下面是该函数的使用情况
 LOWER(This IS a Test)=This is a test
SQL内置函数
      LPAD
 LPAD函数从左面填充指定的字符串。
 其具体的语法格式如下:
 LPAD(string,numchars[,padding])
 其中
 string 任意VARCHAR2型或CHAR型的字符串
 numchars 返回字符串的字符个数
 padding 填充字符。是一可选项,默认为单个空格
 下面是该函数的使用情况:
 LPAD(Jenny,10)=Jenny(5 leading spaces)
 LPAD(Jenny,10,*)=*****Jenny
 LPAD(Jenny,10,*!)=*!*!*Jenny
SQL内置函数
      LTRIM
 LTRIM函数删除字符串左边的前缀字符。一般前缀字符总是空格。
 其具体的语法格式如下:
 LTRIM(string[,trimchars])
 其中
 string 任意VARCHAR2型或CHAR型的数值
 trimchars   待删除的字符串
 下面是该函数的使用情况
 LTRIM(     Jeff)=Jeff(leading spaces removed)
 LTRIM(*****Jeff,*)=Jeff
 LTRIM(*!*!*Jeff,*!)=Jeff
SQL内置函数
      MOD
 MOD函数返回一个数除以另一数的余数。
 其具体的语法格式如下:
 MOD(number,divisor)
 其中
 number 任意数值
 divisor 任意数值。该函数计算number/divisor的余数
 下面是该函数的使用情况
 MOD(14,12)=2(1400 hours=2:00 OClock)
 MOD(10,10)=0
 MOD(10,0)=10
 注意:如果除数为0则返回原来的数
SQL内置函数
       MONTHS_BETWEEN
   MONTHS_BETWEEN函数返回两个日期之间的月份数
   其具体的语法格式如下:
   MONTHS_BETWEEN(date_1,date_2)
   其中:
   date_1   日期型数据
   date_2   一日期型数据
   如果两个参数代表的是某月中的同一日期,或它们军代表的某月中的最后一天,则该函数返回一整型值。否则,将返回一分数。另外,如果第一个参数代表的日期小于第二个参数代表的日期,则返回一负值。
   下面是该函数的使用情况:
   MONTHS_BETWEEN(TO_DATE(29-Dec-1999,dd-mon-yyyy),
    TO_DATE(29-Dec-1988,dd-mon-yyyy))=132
   MONTHS_BETWEEN(TO_DATE(29-Dec-1999,dd-mon-yyyy),
    TO_DATE(24-Nov-1988,dd-mon-yyyy))=133.16129
   在第一个例子中,两个参数均为某一月中的29号,所以返回一整型值(其间相差的月份数),在第二个例子中,因两个参数表示的日期不是同一天,所以返回一分数(以31天为基础计算处理)
SQL内置函数
       NEW_TIME
   NEW_TIME函数将在时区间转换日期/时间数据。
   其具体的语法格式如下:
   NEW_TIME(date,oldzone,newzone)
   其中:
   date     一日期数值。在Oracle中,除其自己以外,所有日        期数值都有时间和记号这样的成分
   oldzone 代表时区的字符串。有效的时区如表所示。被推算        出的日期数值就在该时区当中
   newzone 也是代表时区的字符串。被从老时区到新时区转换的日期数值
   下面是该函数的使用情况:
   NEW_TIME(TO_DATE(25-Dec-1999 8:00,dd-mom-yyyy HH:MI),EST,PST)=25-DEC-1999 05:00
SQL内置函数
       NEXT_DAY
   NEXT_DAY函数返回从实参日期开始,紧随其后的指定星期对应的日期。
   其具体的语法格式如下:
   NEXT_DAY(date,weekday)
   其中:
   date 一日期数据
   weekday 一字符串,说明某一天的星期几的名称。可以使用全称,也可以使用缩写,但对于用户的编程语言做的日期设置来说必须是有效的日期
   下面是该函数的使用情况:
   NEXT_DAY(TO_DATE(24-Nov-1999),dd-mon-yyyy,FRIDAY
                =26-Nov-1999
   NEXT_DAY(TO_DATE(24-Nov-1999),dd-mon-yyyy,WED
                =01-Dec-1999
   注意在第二个例子当中,24-Nov-1999正好落在星期三:Wednesday。下一个WED自然就是1-Dec-1999,所以函数NEXT-DAY返回的结果就是
   01-Dec-1999
SQL内置函数
       NVL
   NVL函数需要两个参数。如果第一个参数为空,则返回第二个参数。第二个参数表示是第一个参数的替换对象。
   其具体的语法格式如下:
   NVL(value,alternative)
   其中
   value    一个可为空的值。它不为空的时候将作为返回值
   alternative      只要它不是空的就是将被返回的值
   下面是该函数处理数据库的某些列包括空值时的情况:
   SELECT emp_id,NVL(emp_name,Name Missing!)
   FROM emp_table;
   在该例中如果雇员有名字将通过该函数返回其名字。如果雇员的名字为空,将返回Name Missing!
SQL内置函数
       POWER
   函数POWER返回一个数值的指定次幂。
   其具体的语法格式如下:
   POWER(number,power)
   其中:
   number   任意数值
   power 幂次数。函数的结果其实即:number幂次。如果第        一个参数为负数,则该幂次数务必是一整数。其它   情况可为任意数值
   下面是该函数的使用情况:
   POWER(10,2)=100(10*10)
   POWER(10,3)=1000
   POWER(-10,3)=-1000
SQL内置函数
       RAWTOHEX
   RAWTOHEX函数将一raw转换成十六进制字符表示的串值。
   其具体的语法格式如下:
   RAWTOHEX(raw_value)
   其中
   raw_value    RAW型数值
   下面是该函数的使用情况
   SQL>CREATE TABLE xx(y raw(10));
   Table created.
   SQL>INSERT INTO xx VALUES(HEXTORAW(‘414243’));
   1 row created.
   SQL>SELECT RAWTOHEX(y) FORM xx;
   RAWTOHEX(Y)
   ------
   414243
SQL内置函数
       REPLACE
   REPLACE函数在一字符串中搜索一指定的子串并将其替换成另外一指定串。
   其具体的语法格式如下:
   REPLACE(string,substring[,replace_string])
   其中
   string       被搜索字符串。在其中搜索待替换串
   substring    被搜索子串。所有找到的子串均被替换掉
   replace_string   替换结果子串。是一可选项。如果该参数被忽略,            则所有被搜索到的子串实质上均被删除
   下面是该函数的使用情况:
   REPLACE(This is a test,is,was)=Thwas was a test
   REPLACE(This is a test,is)=Th a test
SQL内置函数
       ROUND(for dates)
 ROUND函数将一日期处理(舍入)成第二个参数指定的形式。
   其具体的语法格式如下:
   ROUND(date[,fmt])
   其中:
   date     一个日期数值
   fmt      是一个日期格式说明符。指定日期将被处理成该说明符指定的      形式。省略该参数,则指定日期将被处理到最近的一天
   下面是该函数的使用情况:
   ROUND(TO_DATE(24-Nov-1999 08:00 pm,dd-mon-yyyy hh:mi am))
        =25-Nov-1999 12:00:00 am
   ROUND(TO_DATE(24-Nov-199908:37 pm,dd-mon-yyyy hh:mi am),hh)
        =24-Nov-1999 09:00:00 am
   注意:这种处理过程可能意味着日期数值的改变。在第一个例子中,因为800 PM是紧邻第二天的一精确值,所以处理结果被转到下一天(25th)而不是当天(24th.
SQL内置函数
 
       ROUND(for number)
 ROUND函数将一数值处理(舍入)成第二个参数指定的形式的十进制数。
   其具体的语法格式如下:
   ROUND(value,places)
   其中:
   value 试图转换的数值
   places   结果中的十进制数位置。必须是一正整数,但可能是一负数。如果是负数,数字就被精确地处理在从小数点其左数的十进制数
   下面是该函数的使用情况:
   ROUND(89,985,2)=89.90(Note that .005 is rounded up.)
   ROUND(89,985,-1)=90
   ROUND(89,985,-2)=100
SQL内置函数
      ROWIDTOCHAR
 ROWIDTOCHAR函数将一行标志码(ROWID)转换成一字符串。
 其具体的语法格式如下:
 ROWIDTOCHARrowid
 其中:
 rowid   ROWID型数据
 下面是该函数的使用情况:
 SQL>SELECT ROWIDTOCHAR(ROWID) FROM dual;
 ROWIDTOCHAR(ROWID)
 ----------
 AAAADCAABAAAAVUAAA
SQL内置函数
      RPAD
 RPAD函数在字符串的后面追加若干字符。
 其具体的语法格式如下:
 RPAD(string,numchars[,padding])
 其中
 string 任意VARCHAR2型或CHAR型的数据
 numchars 函数结果串的长度
 padding 追加字符单个的。是可选项,默认为空格
 下面是该函数的使用情况:
 RPAD(Jenny,10)=Jenny     (5 trailing spaces)
 RPAD(Jenny,10,*)=Jenny*****
 RPAD(Jenny,10,*!)=Jenny*!*!*
SQL内置函数
 
       RTRIM
   RTRIM函数压缩掉串右面的尾随字符,常常是从指定字符串(第一参数)中压缩空格。
   其具体的语法格式如下:
   RTRIM(string[,trimchars])
   其中
   string   任意VARCHAR2型或CHAR型的数据
   trimchars 准备压缩掉的字符
   下面是该函数的使用情况
   RTRIM(Jeff     )= Jeff(trailing spaces removed)
   RTRIM(Jenny*****)= Jeff
   RTRIM(Jenny*!*!*)= Jeff
SQL内置函数
       SIGN
 SIGN函数返回实参的符号。对于负数返回-10返回0,正数返回+1
   其具体的语法格式如下:
   SIGN(value)
   其中
   value 输入的实参,你试图返回它的符号
   下面是该函数的使用情况:
   SIGN(-100)=-1
   SIGN(0)=0
   SIGN100=1
   可以使用该函数和DECODE函数,根据一个数值的正、负或0,指明表达式间的不同。
SQL内置函数
      SIN
 SIN函数返回一个角度的正弦值。
 其具体的语法格式如下:
 SIN(angle)
 其中
 angle   待求解其正弦的角度。是一角度表达式。可参考函数COS了解从弧度到角度的转换
 下面是该函数的使用情况:
 SIN90*3.1415926/180=1
 SIN0=0
SQL内置函数
       SOUNDEX
   SOUNDEX函数根据以下规则返回一个字符串的发音描述。
   1、保留字符串的首字母
   2、删除下面的所有字母:aehIouwy
   3、首字母后面的任一字母均按如下规则匹配于某一数字:
    b,f,p,v=1
    c,g,j,k,q,s,x,z=2
    d,t=3
    I=4
    m,n=5
    r=6
   4、结果被缩写并转换成一个4位的数字
   其具体的语法格式如下:
   SOUNDEX(string)
   其中
   string   任意字符串
   下面是该函数的使用情况
   SOUNDEX(Gennick)=520 SOUNDEX(Genick)=520 SOUNDEX(Genyk)=520
 
SQL内置函数
      SORT
 SORT函数返回一数字的算术平方根。
 其具体的语法格式如下:
 SORT(number)
 其中
 number 试图求解其平方根的数值,非负数
 下面是该函数的使用情况:
 SORT(100)=10(because 10*10-100)
 SORT100=3.1622777
SQL内置函数
       SUBSTR
   SUBSTR返回一字符串得指定字串。
   其具体的语法格式如下:
   SUBSTR(string,start,length)
   其中:
   string   任意字符串
   start 字串的开始位置。第一个位置总匹配为1。该参数可以为           负数,这时从给定字符串的右面数起
   length   待匹配字串的长度。是一可选项,忽略它则匹配整个字符串
   下面是该函数的使用情况:
   SUBSTRJennyJeffJonathan,6,4=Jeff
   SUBSTR(JennyJeffJonathan,-12,4)=Jeff
   SUBSTR(JennyJeffJonathan,-8)=Jonathan
SQL内置函数
 
       SUBSTRB
   SUBSTRB返回一字符串的指定部分。该函数与SUBSTR极为类似,只是该函数的startlength两参数均以字节为单位,而不是根据字符。这种区别只有在使用多种不同的字符集时才有意义。
   其具体的语法格式如下:
   SUBSTRB(string,start[,length])
   其中:
   string   任意字符串
   start 字串的开始位置。第一个位置总匹配为1。该参数可       以为负数,这时从给定字符串的右面数起
   length   待匹配字串的长度。是一可选项,忽略它则匹配整        个字符串
   下面是该函数的使用情况:
   SUBSTRBJennyJeffJonathan,6,4=Jeff
   SUBSTRB(JennyJeffJonathan,-12,4)=Jeff
   SUBSTRB(JennyJeffJonathan,-8)=Jonathan
SQL内置函数
      SYSDATE
 SYSDATE函数返回当前日期时间,一直到秒。
 其具体的语法格式如下:
 SYSDATE
 SYSDATE没有参数。
 下面是该函数的使用情况:
 SQL>SELECT SYSDATE FROM DUAL;
 SYSDATE
 -------
 24-Nov-199906:45:00 pm
 当然,结果会由于用户调用该函数的时机不同而不同。
SQL内置函数
 
      TAN
 TAN函数返回一个角度的正切值。
 其具体的语法格式如下:
 TAN(angle)
 其中
 angle   用弧度表示。可参考函数COS了解从弧度到     角度的转换
 下面是该函数的使用情况:
 TAN225*3.1415926535/180=1
 TAN0=0
SQL内置函数
 
      TANH
 TANH函数返回一个角度的十六进制正切值。
 其具体的语法格式如下:
 TANH(angle)
 其中
 angle   用弧度表示。可参考函数COS了解从弧度到     角度的转换
 下面是该函数的使用情况:
 TANH225*3.1415926535/180=.99922389
 TANH0=0
SQL内置函数
       TO_CHAR(for dates)
   TO_CHAR函数将一个日期型数据转换成一个字符型数据。
   其具体的语法格式如下:
   TO_CHAR(date[,fmt[,NLS_DATE_LANGUAGE=language]])
   其中
   date 任一DATE型数据
   fmt      一个日期格式说明符它控制了代表日期型数据的字符型结果
   language   使用的语言它对日期拼读有影响如在使用月份、日子、星期      等时
   下面是该函数的使用情况:
   SQL>SELECT TO_CHAR(SYSDATE,’dd-Mon-yyyy’)
    FROM dual;
   TO_CHAR(SYS
   -----
   24-Nov-1999
   SQL>SELECT TO_CHAR(SYSDATE,’Month’,’NLS_DATE_LANGUAGE=Spanish’)
    FROM dual;
   TO_CHAR(SY
   -----
   November
  
SQL内置函数
       TO_CHAR(for numbers)
   TO_CHAR函数将一个数值型数据转换成一个字符型数据。
   其具体的语法格式如下:
   TO_CHAR(date[,fmt[,nlsparams]])
   其中:
   date     任一数值型数据
   fmt      一个数字格式说明符,它控制了代表日期型数据的字符型结果
   nlsparams 数字的语言特征。该参数是由若干下列内容组成的字符串 :      NLS_NUMERIC_CHARACTERS=dg,NLS_CURRENCY=currchar,及        NLS_TERRITORY=territory
        dg表示十进制符号和分隔符(在美国为逗号)。货币数值(在        美国的一个($)符号)常用来表示金钱数值。这两种数值均必     须放在引号中
   下面是该函数的使用情况:
   TO_CHAR(123.45)=123.45
   TO_CHAR(123456.78,$999,999.99)=$123,456.78
   TO_CHAR(123456.78,L999G999D999,
     NLS_NUMERIC_CHARACTERS=,.NLS_CURRENCY=!”’)
   =!123.456,78
   注意:NLS参数没有什么效果,必须使用LGD通行符号、分隔符、小数点等等。
SQL内置函数
 
       TO_DATE
   TO_DATE函数将一个字符型数据转换成一个日期型数据。
   其具体的语法格式如下:
   TO_DATE(string [,fmt[,NLS_DATE_LANGUAGE=language]])
   其中:
   string   待转换的字符串
   fmt      一个日期格式说明符,它控制了代表了转换字符时的处理方式,也是一可选项,忽略它,则使用数据库的默认方式
   language   使用的语言,也是可选项,对日期拼读有影响。
   下面是该函数的使用情况:
   第一个TO_DATE函数将给定字符串解释成8-Nov-1915;
   下列显示了TO_DATE 函数的用法:
   TO_DATE11/08/1915,MM/DD/YY
   下一次调用则将给定字符串解释成11-Nov-1915;
   TO_DATE(11/08/1915,DD/MM/YY
   最后一个例子将给定字符串解释成11-Nov-1915;
   TO_DATE( 11-Nov-1915,MM/DD/YYYY
SQL内置函数
       TO_LOB
   TO_LOB函数将一个LONGLONG RAW型数据转换成下列类型:CLOBBLOBNCLOB。当仅仅需要在INSERT语句中用LONG型数据代替LOB型数据时,可以使用该函数。
   其具体的语法格式如下:
   TO_LOB(long_value)
   其中:
   long_value       待转换为CLOBNCLOB等类型数据的一个             LONGLONG RAW型数据。LONG RAW型数据转      换成BLOB型数据
   下面是该函数的使用情况:
   INSERT INTO new_table(clob_value)
    SELECT TO_LOB(long_value)
    FROM old_table
SQL内置函数
       TO_NUMBER
   TO_NUMBER函数将一字符串转换成一数字。
   其具体的语法格式如下:
   TO_NUMBER(string[,fmt[,nlsparams]])
   其中:
   string   待转换的字符串
   fmt      一数字格式说明符号。它将控制转换过程中的处理方式
   nlsparams 语言特征值。该字符串参数的组成部分有以下内容:      NLS_NUMERIC_CHARACTERS=dg,NLS_CURRENCY=currchar,      NLS_TERRITORY=territory
        dg表示十进制符号和分隔符(在美国为逗号)。货币数值        (在美国的一个($)符号)常用来表示金钱数值。这两种     数值均必须放在引号中
   下面是该函数的使用情况:
   第一个TO_NUMBER函数将给定字符串解释成123.45;
   TO_NUMBER(123.45)   
   下一次调用则将给定字符串解释成123,456.78
   TO_NUMBER($123,456.78,$999,999.99)
SQL内置函数
       TRIM
   TRIM函数将字符串的前缀(或尾随)字符删除。
   其具体的语法格式如下:
   TRIM([LEADING|TRAILING|BOTH][trimchar FROM] string)
   其中
   LEADING 指明仅仅将字符串的前缀字符删除
   TRAILING 指明仅仅将字符串的尾随字符删除
   BOTH     指明既删除前缀字符也删除尾随字符。这也是默认方式
   string   任意一待处理字符串
   trimchar 可选项。指明试图删除什么字符,默认被删除的字符是空格
   下面是该函数的使用情况:
   TRIM(   Ashley   )=Ashley
   TRIM(LEADING * FROM***Ashley***)=Ashley***
SQL内置函数
      TRUNC(for dates)
 TRUNC函数为指定元素而截去的日期值。
 其具体的语法格式如下:
 TRUNC(date[,fmt])
 其中
 date 一个日期值
 fmt     日期格式该日期将由指定的元素格式所截去。忽略它则由最近的日期截去
 下面是该函数的使用情况:
 TRUNC(TO_DATE(24-Nov-1999 08:00 pm,dd-mon-yyyy hh:mi am))
    =24-Nov-1999 12:00:00 am
   TRUNC(TO_DATE(24-Nov-1999 08:37 pm,dd-mon-yyyy hh:mi am,hh)) =24-Nov-1999 08:00:00 am
SQL内置函数
       TRUNC(for number)
   TRUNC函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。
   其具体的语法格式如下
   TRUNCnumber[,decimals]
   其中:
   number   待做截取处理的数值
   decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分
   下面是该函数的使用情况:
   TRUNC89.9852=89.98
   TRUNC89.985=89
   TRUNC89.985-1=80
   注意:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记。
SQL内置函数
      UID
 UID函数返回一个整数值。对于当前数据库用户来它是唯一的。
 其具体的语法格式如下:
 UID
 该函数没有参数
 下面是该函数的使用情况:
 SQL>SELECT UID FROM dual;
     UID
 ------
     5
 该数值来源于V$SESSION中的USER#列。
SQL内置函数
      UPPER
 UPPER函数间返回字符串的大写形式。
 其具体的语法格式如下:
 UPPER(string)
 其中
 string 任意VARCHAR2CHAR型字符串
 下面是该函数的使用情况:
 UPPER(THIS IS a Test)=THIS IS A TEST
SQL内置函数
      USER
 USER返回当前用户名,没有参数。
 其具体的语法格式如下:
 USER
 下面是该函数的使用情况:
 SQL>SELECT USER FROM dual;
 USER
 --------
 SYSTEM
    当任一内嵌的函数或程序调用该函数时,该函数总返回该调用者的名字。
 
原创粉丝点击