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代替指定字符串中的字符.



评论暂缺

(Required)
(Required, will not be published)