-----------------------------------------------字符函数--------------------------------------------- --1: ASCII 返回字符串的ASCII值 SELECT ASCII('A') FROM DUAL; SELECT ASCII('a') FROM DUAL; --2: CHR 返回整数所对应的ASCII字符 SELECT CHR('65') FROM DUAL; SELECT CHR(400) FROM DUAL; --如果超出ACII值,则返回空 --3: CONCAT 函数 连接字符串A和字符串B SELECT CONCAT('您好', '欢迎来到ORACLE世界') AS TEXT FROM DUAL; --3.1 如果要连接表里面的两个字段可以用|| SELECT TYPECODE || '____' || TYPE_NAME AS "TYPE" FROM USER_TYPES; --4: INITCAP 返回字符串并将字符串的第一个字母变为大写; --Q 是否每个单词的第一个字母都会变成大些? 全部单词的首字母大写 SELECT INITCAP('your didn''t try your best') FROM DUAL; --5: LENGTH 返回字符串的长度; --Q:返回表某条数据某个列实际长度,如果该表没有数据,返回0 SELECT LENGTH(TYPE_NAME) FROM USER_TYPES --6: LOWER 返回字符串,并将所有的字符小写 SELECT LOWER('AbcDedf Gbad') FROM DUAL; --7: UPPER 返回字符串,并将所有的字符大写 SELECT UPPER('abcdEf') FROM DUAL; --8: LTRIM(X,[TRIM_STRING]) LTRIM 删除左边出现的字符串, 默认为空字符串 SELECT LTRIM(' hello world!') FROM DUAL; SELECT LTRIM('hello, world', 'hello') FROM DUAL; --9: RTRIM(X, [TRIM_STRING]) RTRIM 删除右边出现的字符串TRIM_STRING,默认为空字符串。 SELECT RTRIM('hello world! ') FROM DUAL; --10: SUBSTR(string,start,count) 取子字符串,从start开始,取count个 SELECT SUBSTR('you are right!, come on', 3, 30) FROM DUAL; --11: INSTR(C1,C2,I,J) 在一个字符串中搜索指定的字符,返回发现指定的字符的位置; C1 被搜索的字符串 C2 希望搜索的字符串 I 搜索的开始位置,默认为1 J 出现的位置,默认为1 SELECT INSTR('HELLO WORLD! WELCOME', 'WORLD', 1) FROM DUAL; --12: RPAD RPAD 在列的右边粘贴字符 --注意长度值并不是粘贴字符的长度,而是整个字符串的长度,如果长度小于原始字符串 --SELECT RPAD('HELLO', 4, '*') FROM DUAL; 的值为HELL SELECT RPAD('HELLO', 10, '*') FROM DUAL; SELECT RPAD('HELLO', 10, 'E') FROM DUAL; --13: LPAD LPAD 在列的左边粘贴字符 --N: 注意的问题同上 SELECT LPAD('WELCOME', 20, 'HELLO') FROM DUAL; --14: REPLACE('string','s1','s2') string 希望被替换的字符或变量 s1 被替换的字符串 s2 要替换的字符串 SELECT REPLACE('HE LOVE YOU', 'HE' ,'I') FROM DUAL; --15: SOUNDEX 返回一个与给定的字符串读音相同的字符串 SQL> create table table1(xm varchar(8)); SQL> insert into table1 values('weather'); SQL> insert into table1 values('wether'); SQL> insert into table1 values('gao'); --16.TRIM('s' from 'string') LEADING 剪掉前面的字符 TRAILING 剪掉后面的字符 如果不指定,默认为空格符 SELECT TRIM('Y' FROM 'YOU') FROM DUAL; --17: NVL(X, VALUE) 如果X是空值,返回VALUE,否则返回X SELECT NVL(NULL, '2') FROM DUAL; SELECT NVL('33', '2') FROM DUAL; --18: NVL2(X, VALUE1, VALUE2) 如果X是空值,返回VALUE1, 否则返回VALUE2 SELECT NVL2(NULL, '3', '4') FROM DUAL; --19: NANVI(X, VALUE) 如果X不是数字,那么返回VALUE,否则返回X SELECT NANVI('3DF', '34') FROM DUAL; --不知是否是ORACLE 11里面出现的。 ----------------------------------------------------------------------------------------------------