aixuexiwoying 发表于 2016-04-28 15:39

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> selectreplace ('111222333444','222','888') from dual;
REPLACE('111
--------------------
111888333444
页: [1]
查看完整版本: Oracle单行函数之字符函数