Oracle单行函数之字符函数

本次主要总结了以下字符函数的作用及使用方法:

函 数 说 明
ASCII 返回对应字符的十进制值
CHR 给出十进制返回字符
CONCAT 拼接两个字符串,与 || 相同
INITCAT 将字符串的第一个字母变为大写
INSTR 找出某个字符串的位置
INSTRB 找出某个字符串的位置和字节数
LENGTH 以字符给出字符串的长度
LENGTHB 以字节给出字符串的长度
LOWER 将字符串转换成小写
LPAD 使用指定的字符在字符的左边填充
LTRIM 在左边裁剪掉指定的字符
RPAD 使用指定的字符在字符的右边填充
RTRIM 在右边裁剪掉指定的字符
REPLACE 执行字符串搜索和替换
SUBSTR 取字符串的子串
SUBSTRB 取字符串的子串(以字节)
SOUNDEX 返回一个同音字符串
TRANSLATE 执行字符串搜索和替换
TRIM 裁剪掉前面或后面的字符串
UPPER 将字符串变为大写
NVL 以一个值来替换空值

1、ASCII(<xxx>)

<xxx>是字符串,返回与指定的字符对应的十进制数。

SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual;

     A      a ZERO SPACE

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

65     97     48     32


2、CHR(n])

给出整数,返回对应字符。如:

SQL> select chr(65) chr65 from dual;

 C

 -

 A


3、CONCAT(<c1>,<c2>)

返回字符串c1与字符串c2合并后的值。例如:

SQL> select concat('010-','8801 8159') from dual;

CONCAT('01

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

010-8801 8159


4、INITCAP(<c1>)

返回字符串c1 并第一个字母变为大写。例如:

SQL> select initcap('simth') upp from dual;

UPP

-----

Simth


5、INSTR(<c1>,<c2>[,<I>[,<j>] ] )

在一个字符串中搜索指定的字符,返回发现指定的字符的位置。

C1: 被搜索的字符串

C2: 希望搜索的字符串

I: 搜索的开始位置,缺省是1

J: 出现的位置,缺省是1。

SQL> SELECT INSTR ('Oracle Training', 'ra', 1, 2) "Instring" FROM DUAL;

 Instring

----------

        9


6、INSTRB(<c1>,<c2>[,<I>[,<j>] ] )

除了返回的字节外 ,与INSTR 相同,


7、LENGTH( <c> )

返回字符串 c 的长度。

SQL> select name,length(name),addr,length(addr),sal,length(to_char(sal)) from nchar_tst;

NAME LENGTH(NAME) ADDR      LENGTH(ADDR) SAL LENGTH(TO_CHAR(SAL))

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

张五一      3        北京市海淀区         6         99999.99    8


8、LENGTHB( <c> )

以字节返回字符串的字节数。

SQL> select name,lengthb(name),length(name) from nchar_tst;

NAME   LENGTHB(NAME) LENGTH(NAME)

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

张五一              6            3


9、LOWER ( <c> )

返回字符串并将所有字符变为小写。

SQL> select lower('AaBbCcDd') AaBbCcDd from dual;

AABBCCDD

--------

aabbccdd


10、UPPER( <c>)

与 LOWER 相反,将给出字符串变为大写。如:

SQL> select upper('AaBbCcDd') AaBbCcDd from dual;

AABBCCDD

--------

AABBCCDD


11、RPAD和LPAD

RPAD(string,Length[,'set'])

LPAD(string,Length[,'set'])

      RPAD在列的右边用特定的字符补齐;

      LPAD在列的左边用特定的字符补齐。

例1:

SQL>select   RPAD(City,35,'.'),temperature    from weather;

        RPAD(City,35,'.')            temperature

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

           CLEVELAND......                    85

           LOS ANGELES..                     81

          .........................

        (即不够35个字符用'.'补齐)


12、LTRIM(左截断)RTRIM(右截断)

LTRIM (string [,’set’])

Left TRIM (左截断)删去左边出现的任何set 字符。

RTRIM (string [,’set’])

Right TRIM (右截断)删去右边出现的任何set 字符。

例1:

SELECT RTRIM (‘Mother Theresa, The’, ‘The’)  FROM DUAL;

RTRIM (‘M

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

Mother Theresa,


13、SUBSTR Substr(string,m[,n]) 截取字符串函数

substr("ABCDEFG", 0); //返回:ABCDEFG,截取所有字符

substr("ABCDEFG", 2); //返回:CDEFG,截取从C开始之后所有字符

substr("ABCDEFG", 0, 3); //返回:ABC,截取从A开始3个字符

substr("ABCDEFG", 0, 100); //返回:ABCDEFG,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最大数量返回。

substr("ABCDEFG", -3); //返回:EFG,注意参数-3,为负值时表示从尾部开始算起,字符串排列位置不变。


14、SUBSTRB(string,m[,n])

对字串(或字段),从m字节 开始,连续取 n个字节并返回结果,如果没有指n则一直取到尾。


15、REPLACE (‘string’ [,’string_in’,’string_out’])

String: 希望被替换的字符串或变量。

String_in: 被替换字符串。

String_out: 要替换字符串。

SQL> select  replace ('111222333444','222','888') from dual;

REPLACE('111

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

111888333444

更多精彩视频及学习文章,请关注我

Oracle单行函数之字符函数_第1张图片

你可能感兴趣的:(oracle)