购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

5.3 字符串函数

字符串函数主要用来处理数据库中的字符串数据。本节将介绍各种字符串函数的功能和用法。

5.3.1 计算字符串长度的函数

LENGTH(str)返回值为字符串的字节长度。

【例5.22】若要使用LENGTH函数计算字符串的字节长度,可执行如下的SQL语句:

5.3.2 合并字符串函数CONCAT(s1,s2)

CONCAT(s1,s2)返回结果为把参数指定的两个字符串连接后所产生的新字符串。

【例5.23】若要使用CONCAT函数连接字符串,可执行如下的SQL语句:

     SQL> SELECT CONCAT('学习', 'Oracle 19c')  FROM dual;
     CONCAT('学习','ORACLE 19c')
     ------------------------
     学习Oracle 19c

CONCAT('学习', 'Oracle 19c')返回两个字符串连接后的字符串。

5.3.3 字符串搜索函数INSTR (s,x)

INSTR(s,x)返回x字符在字符串s中的位置。

【例5.24】若要使用INSRT函数进行字符串搜索操作,可执行如下的SQL语句:

字符c位于字符串'hello Oracle'的第10个位置,结果输出为10。

5.3.4 字母大小写转换函数

LOWER (str)可以将字符串str中的字母全部转换成小写字母。

【例5.25】若要使用LOWER函数将字符串中的所有字母转换为小写字母,可执行如下的SQL语句:

从执行结果可以看到,原来所有的字母都为大写,全部都转换为小写了,如“BEAUTIFUL”转换之后为“beautiful”。

UPPER(str)可以将字符串str中的字母全部转换成大写字母。

【例5.26】若要使用UPPER函数将字符串中的所有字母转换为大写字母,可执行如下的SQL语句:

从执行结果可以看到,原来所有的字母都为小写,全部被转换为大写了,如“black”转换之后为“BLACK”。

INITCAP(str)将输入的字符串单词的首字母转换成大写字母。如果不是两个字母连在一起,就认为是新的单词,例如a_b、a,b、a b等,其中的a和b都会转换成大写字母。

【例5.27】若要使用INITCAP函数将字符串中的首字母转换成大写字母,可执行如下的SQL语句:

从执行结果可以看到,原来每个单词的首字母全部转换为大写,如“hello”转换之后为“Hello”。

5.3.5 截取指定长度的字符串的函数SUBSTR(s,m,n)

SUBSTR(s,m,n)函数从字符串中截取指定长度的子字符串,其中参数s代表字符串,m代表截取的位置,n代表截取长度。

【例5.28】若要使用SUBSTR函数从字符串中截取指定长度的子字符串,可执行如下的SQL语句:

当m值为正数时,从字符串左边开始数指定的位置开始截取;当m值为负值时,从字符串右边数开始指定的位置开始截取。

5.3.6 替换字符串的函数REPLACE(s1,s2,s3)

REPLACE (s1,s2,s3)是一个替换字符串的函数,其中参数s1表示搜索的目标字符串;s2表示在目标字符串中要搜索的字符串;s3是可选参数,用它替换被搜索到的字符串,如果该参数不用,就表示从s1字符串中删除搜索到的s2字符串。

【例5.29】若要使用REPLACE函数对字符串进行替换和删除操作,可执行如下的SQL语句:

从执行结果可以看到,第一个替换的情况是:字符串中的“dog”被替换成“cat”;第二个替换的情况是:字符串中的“dog”被删除。

5.3.7 删除字符串首尾指定字符串的函数LTRIM(s,n)和RTRIM(s,n)

LTRIM(s,n)函数将删除字符串左侧指定的字符串,其中s是目标字符串,n是需要查找的字符串。如果n不指定,就表示删除字符串左侧的空格。

【例5.30】若要使用LTRIM函数对字符串进行删除操作,可执行如下的SQL语句:

从执行结果可以看到,第一个删除的情况是:字符串中的“this”被删除;第二个删除的情况是:字符串左侧的空格被删除。

RTRIM(s,n)函数将删除字符串右侧指定的字符串,其中s是目标字符串,n是需要查找的字符串。如果n不指定,就表示删除字符串右侧的空格。

【例5.31】若要使用RTRIM函数对字符串进行删除操作,可执行如下的SQL语句:

从执行结果可以看到,第一个删除的情况是:字符串中的“dog”被删除;第二个删除的情况是:字符串右侧的空格被删除。

5.3.8 删除指定字符串的函数TRIM()

TRIM函数将删除指定的前缀或者后缀的字符,默认删除空格。具体的语法格式如下:

     TRIM([LEADING/TRAILING/BOTH][trim_character FROM]trim_source)

其中LEADING是指删除trim_source中的前缀字符;TRAILING是指删除trim_source中的后缀字符;BOTH是指删除trim_source中的前缀和后缀字符;trim_character用于指定要删除的字符,默认删除空格;trim_source是指源字符串。

【例5.32】若要使用TRIM(s1 FROM s)函数删除字符串中两端指定的字符,可执行如下的SQL语句:

从执行结果可以看到,第一个删除的情况是:删除字符串“xyxbxykyx”两端的重复字符“x”,而中间的“x”并不删除,结果为“yxbxyky”;第二个删除的情况是:字符串两端的空格被删除了。

5.3.9 字符集名称和ID互换函数

NLS_CHARSET_ID(string)函数可以得到字符集名称对应的ID,参数string表示字符集的名称。

【例5.33】若要使用NLS_CHARSET_ID函数通过字符集的名称获取这个字符集对应的ID,SQL语句如下:

NLS_CHARSET_NAME(number)函数可以通过ID获得字符集对应的名称,参数number表示字符集的ID。

【例5.34】若要使用NLS_CHARSET_NAME函数通过字符集的ID获取字符集的名称,可执行如下的SQL语句: QmLOufOGqbRJLM27ZXJuolfMR6fUOhrdVD6q/IBUf1zPguIyEoo5kIWkvjvKjGh4

点击中间区域
呼出菜单
上一章
目录
下一章
×