字符函数接受字符参数,这些参数可以是表中的列,也可以是一个字符串表达式
| 函数 | 说明 |
|---|---|
| ASCII(x) | 返回字符x的ASCII码。 |
| CONCAT(x,y) | 连接字符串x和y。 |
| REPLACE (x,old,new) | 在x中查找old,并替换为new。 |
| TRANSLATE ( char, from, to ) | 映射替换。 |
![]() |
|
| LENGTH(x) | 返回x的长度。 LENGTH(‘简自豪’) -> 3 |
| LENGTHB(x) | 返回x的字节长度。 LENGTHB(‘简自豪’) -> 6 |
| LOWER(x) | x转换为小写。 |
| UPPER(x) | x转换为大写。 |
| INITCAP (‘X’) | 首字母大写,其他小写。 |
| LTRIM(x[,trim_str]) | 把x的左边截去trim_str字符串,缺省截去空格。 |
| RTRIM(x[,trim_str]) | 把x的右边截去trim_str字符串,缺省截去空格。 |
| TRIM([trim_str FROM] x) | 把x的两边截去trim_str字符串,缺省截去空格。 |
| INSTR ( x, str [,start] [,n] ) | 返回查找str的位置,在x中查找str,第n次出现。 (可以指定从start开始) |
| SUBSTR ( x, start [,length] ) | 返回x的字串,从start处开始,截取length个字符。 (如果缺省length,默认到结尾) |
【例】查询员工姓名以’S’结尾的员工信息
--方法1SELECT * FROM EMP E WHERE INSTR(E.ENAME,'S',-1,1)=LENGTH(E.ENAME);--方法2SELECT * FROM EMP E WHERE RTRIM(E.ENAME,'S')<>E.ENAME;--方法3SELECT * FROM EMP E WHERE SUBSTR(E.ENAME,-1,1)='S;
示例:
| 示例 | 示例结果 |
|---|---|
| SELECT ASCII(‘a’) FROM DUAL | 97 |
| SELECT CONCAT(‘Hello’, ‘ world’) FROM DUAL | Hello world |
| SELECT INSTR(‘Hello world’,’or’) FROM DUAL | 8 |
| SELECT LENGTH(‘Hello’) FROM DUAL | 5 |
| SELECT LOWER(‘hElLO’) FROM DUAL; | hello |
| SELECT UPPER(‘hello’) FROM DUAL | HELLO |
| SELECT LTRIM(‘===HELLO===’, ‘=’) FROM DUAL | HELLO=== |
| SELECT ‘==’||LTRIM(‘ HELLO===’) FROM DUAL | ==HELLO=== |
| SELECT RTRIM(‘===HELLO===’, ‘=’) FROM DUAL | ===HELLO |
| SELECT ‘=’||TRIM(‘ HELLO ‘)||’=’ FROM DUAL | =HELLO= |
| SELECT TRIM(‘=’ FROM ‘===HELLO===’) FROM DUAL | HELLO |
| SELECT REPLACE(‘ABCDE’,’CD’,’AAA’) FROM DUAL | ABAAAE |
| SELECT SUBSTR(‘ABCDE’,-2) FROM DUAL | DE |
| SELECT SUBSTR(‘ABCDE’,2,3) FROM DUAL | BCD |

