ORACLE单字符函数的函数



1、           ASCII(C)

说明:返回C的首字符在ASCII码中相应的十进制

举例:

SQL>SELECT ASCII('A') A,ASCII('a') B,ASCII('0') C,ASCII(' ') D FROM DUAL;

        A         B          C         D

-------------------- ---------- ----------

       65        97         48        32

2、         CHR(N)

说明:返回十进制ASCIIN相应的字符

举例:

SQL>SELECT CHR(65) A,CHR(97) B,CHR(48) C,CHR(32) D FROM DUAL;

A B CD

- - --

A a 0

3、           CONCAT(C1,C2)

说明:返回将C2加入到C1后面而形成的字符串。假设C1NULL。那么返回C2。假设C2NULL,那么返回C1。假设C1C2都为NULL,那么返回NULL

举例:

SQL>SELECT CONCAT('010-','8888') A,CONCAT(NULL,'8888') B,CONCAT('010-',NULL)C,CONCAT(NULL,NULL) D FROM DUAL;

A       B   C   D

------------ ---- -

010-88888888 010-

4、           INITCAP(C)

说明:返回C的每一个首字符都大写、其它字符都小写的字符串。

单词之间以空格,控制字符和标点符号分界

举例:

SQL>SELECT INITCAP('you are') A FROM DUAL;

A

-------

YouAre

5、           INSTR(C1,C2[,N[,M]])

说明:在C1中从N開始搜索C2M次出现的位置,并返回该位置数字。假设N是负数。则搜索从右向左进行,但位置数字仍然从左向右计算。NM默认都是1

举例:

SQL>SELECT INSTR('aabbccddee','cc') A,INSTR('aabbccddee','cc',5)B,INSTR('aabbccddeecc','cc',1,2) C,INSTR('aabbccddee','cc',-6) D FROM DUAL;

        A         B          C         D

-------------------- ---------- ----------

        5         5         11         5

6、           LENGTH(C)

说明:返回C的长度。包含全部的后缀空格;假设C是空字符串或者NULL,则返回NULL

举例:

SQL> SELECT LENGTH('aabbccdd') A,LENGTH('') B,LENGTH(NULL) C FROM DUAL;
         A          B          C
---------- ---------- ----------
         8           

7、          LOWER(C)

说明:返回将C所有字符都小写之后的字符串

举例:

SQL>SELECT LOWER('AaBbCcDd') A FROM DUAL;

A

--------

aabbccdd

 

8、         LPAD(C1,N[,C2])

说明:在C1的左边填充C2,直到字符串的总长度达到NC2的默认值为空格。假设C1的长度大于N,则返回C1左边的N个字符

举例:

SQL>SELECT LPAD('aabbcc',8) A,LPAD('aabbcc',4) B,LPAD('aabbcc',8,'0') C FROM DUAL;

A       B   C

------------ --------

 aabbcc aabb 00aabbcc

9、         LTRIM(C1[,C2])

说明:去掉C1左边所包括的C2中的不论什么字符。当遇到不是C2中的字符时结束,然后返回剩余的字符串。

C2默觉得空格

举例:

SQL>SELECT LTRIM(' aabb ') A,LTRIM('00aabb00','0') B FROM DUAL;

A     B

------------

aabb  aabb00

10、       NANVL(X,value)

说明:该函数仅仅对BINARY_FLOATBINARY_DOUBLE起作用。

假设X匹配NaN(即非数字),就返回value。否则返回X

举例(PL/SQL中无法运行,必须在SQLPLUS里运行):

SQL>CREATETABLE NANVL_demo(dec_numNUMBER(10,2), bin_doubleBINARY_DOUBLE, bin_floatBINARY_FLOAT);

 

表已创建。

 

SQL>INSERTINTO NANVL_demoVALUES(0,'NaN','NaN');

 

已创建1行。

 

SQL>SELECT*FROM NANVL_demo;

 

  DEC_NUM BIN_DOUBLE BIN_FLOAT

---------- ---------- ----------

        0       Nan       Nan

 

SQL>SELECT bin_float,NANVL(bin_float,0)FROM NANVL_demo;

 

 BIN_FLOATNANVL(BIN_FLOAT,0)

---------- ------------------

      Nan                 0

11、       NVL(X,value)

说明:假设X为空。就返回value,否则返回X

举例:

SQL>SELECT NVL('','aabb') A,NVL(NULL,'aabb') B,NVL('aa','aabb') C FROM DUAL;

A   B   C

-------- --

aabbaabb aa

12、      NVL2(X,value1,value2)

说明:假设X为空,就返回value1。否则返回value2

举例:

SQL>SELECT NVL2('','aabb','ccdd') A,NVL2(NULL,'aabb','ccdd')B,NVL2('aa','aabb','ccdd') C FROM DUAL;

A   B   C

-------- ----

ccddccdd aabb

13、       REPLACE(C1,C2[,C3])

说明:把C1中出现的C2都置换成C3,然后返回剩余的字符串。

C3默觉得NULL

假设C3NULL,那么全部出现C2的地方的字符都被删除。假设C2NULL,则将返回C1;假设C1NULL,则将返回NULL

举例:

SQL>SELECT REPLACE('aabbccaabb','aa','00') A,REPLACE('aabbccaabb','aa')B,REPLACE('aabbccaabb',NULL) C FROM DUAL;

A         B     C

---------------- ----------

00bbcc00bbbbccbb aabbccaabb

 

14、       RPAD(C1,N[,C2])

说明:在C1的右边填充C2,直到字符串的总长度到达NC2的默认值为空格。

N是返回的字节长度的字符串。假设这个数量比原字符串的字节长度要短,RPAD函数将会把字符串截取成从左到右的N个字符

举例:

SQL>SELECT RPAD('aabbcc',8) A,RPAD('aabbcc',4) B,RPAD('aabbcc',8,'0') C FROM DUAL;

A       B   C

------------ --------

aabbcc  aabb aabbcc00

 

15、   RTRIM(C1[,C2])

说明:去掉C1右边所包括的C2中的不论什么字符,当遇到不是C2中的字符时结束,然后返回剩余的字符串。C2默觉得空格

举例:

SQL>SELECT RTRIM(' aabb ') A,RTRIM('00aabb00','0') B FROM DUAL;

A     B

------------

 aabb 00aabb

16、      SUBSTR(C,M[,N])

说明:返回C的子串,当中M是子串開始的位置,N是子串的长度。假设M0,则从C的首字符開始:假设M是负数,则从C的结尾的指定位置開始

举例:

SQL>SELECT SUBSTR('aabbccdd',3) A,SUBSTR('aabbccdd',3,2) B,SUBSTR('aabbccdd',-3,2)C FROM DUAL;

A     B C

-------- --

bbccddbb cd

17、     TRANSLATE(string,from_str,to_str)

说明:返回将(全部出现的)from_str中的每一个字符替换为to_str中的对应字符以后的string

TRANSLATE REPLACE所提供的功能的一个超集。假设 from_str to_str长。那么在 from_str中而不在 to_str中的额外字符将从 string中被删除。由于它们没有对应的替换字符。to_str不能为空。

Oracle将空字符串解释为 NULL,而且假设TRANSLATE中的不论什么參数为NULL,那么结果也是 NULL

举例:

SQL>select TRANSLATE('aabbcc','aabb','0011') A,TRANSLATE('abcbbaadef','ba','#@')B,TRANSLATE('22AABBCC22','0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ','0123456789') Cfrom dual;

A     B         C

---------------- ----

0011cc@#c##@@def 2222

18、      TRIM([C1] C2 FROM C3)

说明:当中,C1是保留宇,能够取例如以下字符串:LEADINGTRAILINGBOTHC1必须和FROM一起使用。

C3字符串的C1处開始。删除C2字符,然后返回剩余的C3字符串。C1默觉得BOTHC2默觉得空格。假设C1C2C3中有不论什么一个为NULL,则返回NULL

举例:

SQL>SELECT TRIM(' aabb ') A,TRIM(LEADING '0' FROM '00aabb00')B,TRIM(TRAILING '0' FROM '00aabb00') C,TRIM(BOTH '0' FROM '00aabb00') D FROMDUAL;

A   B     C     D

---------- ------ ----

aabbaabb00 00aabb aabb

19、    UPPER(C)

说明:返回将C所有字符都大写之后的字符串

举例:

SQL>SELECT UPPER('aabbccdd') A FROM DUAL;

A

--------

AABBCCDD

原文地址:https://www.cnblogs.com/blfshiye/p/4567303.html