■ 字符串连接 SQL> select 'abc' || 'def' from dual; 'ABC'| ------ abcdef SQL> ■ 小写 select lower('ABC012'); lower -------- abc012 ■ 大写 select upper('abc012'); upper -------- ABC012 ■ 左补全 select lpad('abc', 5, '0'); lpad ------- 00abc select lpad('abc', 5, '012'); lpad ------- 01abc 第3个参数为空时,缺省为space select lpad('abc', 5); lpad ------- abc select lpad('abc', 5, ' '); lpad ------- abc ■ 右补全 select rpad('abc', 5, '0'); rpad ------- abc00 select rpad('abc', 5, '012'); rpad ------- abc01 ■ 左空白删除 select ltrim(' abc'); ltrim ------- abc ■ 右空白删除 select ltrim('abc '); ltrim --------------- abc ■ 左右空白删除 select trim(' abc '); btrim ------- abc ■ 字符串替换 SQL> SELECT TRANSLATE('ababab' , 'a' , '1') FROM DUAL; TRANSL ------ 1b1b1b ■ 取子字符串 SQL> select substr('abc012', 3, 2) from dual; SU -- c0 ■ 字符串长度 SQL> select length('abc012') from dual; LENGTH('ABC012') ---------------- 6 ■ 数字转化成字符串 SQL> select to_char(123456, '999,999,999,999') from dual; TO_CHAR(123456,' ---------------- 123,456 ■ 字符串转化为数字 SQL> select to_number('123' || '456', '999999999999') from dual; TO_NUMBER('123'||'456','999999999999') -------------------------------------- 123456 SQL> select to_number('123,456', '999,999,999,999') from dual; TO_NUMBER('123,456','999,999,999,999') -------------------------------------- 123456 ■ 返回第一个空格前的字符串 SQL> select substr('IFSAPP application owner',1,instr('IFSAPP application owner',' ',1,1)) from dual ----------------------------------- IFSAPP ------------------------------------------------------------------------------------------------------ INSTR方法的格式为 INSTR(源字符串, 目标字符串, 起始位置, 匹配序号) 例如:INSTR('CORPORATE FLOOR','OR', 3, 2)中,源字符串为'CORPORATE FLOOR', 目标字符串为'OR',起始位置为3,取第2个匹配项的位置。 默认查找顺序为从左到右。当起始位置为负数的时候,从右边开始查找。 所以SELECT INSTR('CORPORATE FLOOR', 'OR', -1, 1) "Instring" FROM DUAL的显示结果是 Instring —————— 14 补: 1. NVL(EXPR1,EXPR2) 若EXPR1是NULL,则返回EXPR2,否则返回EXPR1. 2. 一般的to_char是这样用的to_char(sysdate,'YYYY-MM-DD hh:mi:ss AM') 或to_char(sysdate,'YYYY-MM-DD hh24:mi:ss AM') to_char(sysdate, 'dd') 查看今天是几号 to_char(sysdate, 'ww') 查看这是这个月第几个星期 to_char(sysdate, 'mm') 查看这是一年中第几个月 to_char(sysdate, 'yyyy') 查看年份 last_day(to_date('2007-02-01','YYYY-MM-DD'))查看一个月的最后一天,add_months(sysdate,10)查看若干个月后的今天,next_day(sysdate,'星期五')给个日期查看后面的最近的星期几的日期,不过这个星期五要是换成英文居然有问题,第2个参数可以是数字1-7,分别表示周日到周六。 3. REGEXP_REPLACE(source_string,pattern,replace_string,position,occurtence,match_parameter)函数(10g新函数) 描述:字符串替换函数。相当于增强的replace函数。Source_string指定源字符表达式;pattern指定规则表达式;replace_string指定用于替换的字符串;position指定起始搜索位置;occurtence指定替换出现的第n个字符串;match_parameter指定默认匹配操作的文本串。 其中replace_string,position,occurtence,match_parameter参数都是可选的。 4. select length(trim(translate('asdasdasdasd','bcedfghijklmnopqrstuvwxyz',' '))) a_len from dual A_LEN 4 5. REGEXP_SUBSTR(source_string, pattern[,position [, occurrence[, match_parameter]]])函数(10g新函数) 描述:返回匹配模式的子字符串。相当于增强的substr函数。Source_string指定源字符表达式;pattern指定规则表达式;position指定起始搜索位置;occurtence指定替换出现的第n个字符串;match_parameter指定默认匹配操作的文本串。 其中position,occurtence,match_parameter参数都是可选的 Examples:select regexp_substr(‘http://www.oracle.com/products’,’http://([[:alnum:]]+/.?) {3,4} / ?’) “regexp_substr” from dual