ITPub博客

首页 > 数据库 > Oracle > Oracle单行函数之字符函数

Oracle单行函数之字符函数

原创 Oracle 作者:aixuexiwoying 时间:2016-05-19 18:21:12 0 删除 编辑

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


函 数                                    说 明

ASCII                          返回对应字符的十进制值

ASCII                          返回对应字符的十进制值

ASCII                          返回对应字符的十进制值

CHR                            给出十进制返回字符

CONCAT                          拼接两个字符串,与 || 相同

INITCAT                         将字符串的第一个字母变为大写

INSTR                          找出某个字符串的位置

INSTRB                          找出某个字符串的位置和字节数

LENGTH                         以字符给出字符串的长度

LENGTHB                        以字节给出字符串的长度

LOWER                          将字符串转换成小写

LPAD                           使用指定的字符在字符的左边填充

LTRIM                          在左边裁剪掉指定的字符

RPAD                           使用指定的字符在字符的右边填充

RTRIM                          在右边裁剪掉指定的字符

REPLACE                         执行字符串搜索和替换

SUBSTR                          取字符串的子串

SUBSTRB                         取字符串的子串(以字节)

SOUNDEX                         返回一个同音字符串

TRANSLATE                        执行字符串搜索和替换

TRIM                           裁剪掉前面或后面的字符串

UPPER                          将字符串变为大写

NVL                            以一个值来替换空值





ASCII() 

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

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

A      a ZERO SPACE 

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

65     97     48     32 

 CHR(n]) 

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

SQL> select chr(65) chr65 from dual; 

C 

- 

A 

3、CONCAT(,) 

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

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

CONCAT('01 

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

010-8801 8159 

4、INITCAP() 

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

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

UPP 

----- 

Simth 

5、INSTR(,[,[,] ] ) 

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

C1: 被搜索的字符串 

C2: 希望搜索的字符串 

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

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

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

 Instring 

---------- 

        9 

6、INSTRB(,[,[,] ] ) 

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

7、LENGTH( ) 

返回字符串 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( ) 

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

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

NAME   LENGTHB(NAME) LENGTH(NAME) 

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

张五一              6            3 

9、LOWER ( ) 

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

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

AABBCCDD 

-------- 

aabbccdd 

10、UPPER( ) 

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

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

AABBCCDD 

-------- 

AABBCCDD 

11、RPAD和LPA 

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); //返回:CDFG,截取从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 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31133113/viewspace-2103324/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 小笑话两则
请登录后发表评论 登录
全部评论

注册时间:2016-04-19

  • 博文量
    22
  • 访问量
    73375