本次主要总结了以下字符函数的作用及使用方法: 函 数说 明 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
更多精彩视频及学习文章,请关注我:
http://www.wyzc.com/ocp/?tg=3006123630