oracle字符函数学习(待续)
ASCII函数:
作用:返回数据库字符集中指定字符的NUMBER码
select ascii(’a') from dual;
ASCII(’A')
———-
97
如果有多个字符,则只返回第一个字符的对照码
CHR函数:返回参数提供的对照码对应的VARCHAR2的字符.一般用在代码中引用不可打印字符.
SELECT name,address1,address2,address3,address4,city || ‘,’ || state ||” ||zipcode location FROM company.
假设每列在新的一行开始,你的为每个地址使用6行,不管有多少个NULL
输出类似于如下格式
HAROLD HENDERSON
22 BUNKER COURT
SUITE 100
WYANDANCH,MN 66557
假设你要求去掉中间的空白行,可以通过如下代码
SELECT NAME ||
DECODE(address1,NULL,NULL,CHR(10) || address1) ||
DECODE(address2,NULL,NULL,CHR(10) || address2) ||
DECODE(address3,NULL,NULL,CHR(10) || address3) ||
DECODE(address4,NULL,NULL,CHR(10) || address4) ||
CHR(10) ||
city || ‘.’||state ||”||zipcode
FROM company
这个输出为:
HAROLD HENDERSON
22 BUNKER COURT
SUITE 100
WYANDANCH,MN 66557
CONCAT 函数:
连接两个VARCHAR(2)字符串
select concat(’abc’,'def’) from dual;
CONCAT(’ABC’
————
abcdef
实际编程中一般使用||
INITCAP
作用:格式化字符串参数大小写,每个单词第一个字母大写
select initcap( ‘this is lower’) from dual;
INITCAP(’THISISLOWER’)
————————–
This Is Lower
INSTR返回字符串中指定要搜索的字符
scott@ORCL(10.64.20.226)> select instr(’abcd’,'d’) from dual;
INSTR(’ABCD’,'D’)
—————–
4
已用时间: 00: 00: 00.07
scott@ORCL(10.64.20.226)> select instr(’abcdefd’,'d’) from dual;
INSTR(’ABCDEFD’,'D’)
——————–
4
已用时间: 00: 00: 00.09
scott@ORCL(10.64.20.226)> select instr(’abcdefd’,'d’,5) from dual;
INSTR(’ABCDEFD’,'D’,5)
———————-
7
后边的数字5是指定要搜索开始的位置.如果为负数,从字符串后边开始往前搜索.
scott@ORCL(10.64.20.226)> select instr(’abcdefd’,'d’,1,2) from dual;
INSTR(’ABCDEFD’,'D’,1,2)
————————
7
后边的数字2是搜索D第2次出现的位置.
scott@ORCL(10.64.20.226)> select instr(’abcdefd’,'d’,-1) from dual;
INSTR(’ABCDEFD’,'D’,-1)
———————–
7
-1是指定字符D最后一次出现的位置.
还有好多情况
LENGTH函数:
返回字符串的长度.
LOWER函数
作用:将字符串中所有字符转换为小写字符.
LAPD函数:
作用:填充字符:
REPLACE代替指定字符串中的字符.
