5.3 字符串函数 |
![]() |
字符串函数主要用来处理数据库中的字符串数据。本节将介绍各种字符串函数的功能和用法。
LENGTH(str)返回值为字符串的字节长度。
【例5.22】若要使用LENGTH函数计算字符串的字节长度,可执行如下的SQL语句:
CONCAT(s1,s2)返回结果为把参数指定的两个字符串连接后所产生的新字符串。
【例5.23】若要使用CONCAT函数连接字符串,可执行如下的SQL语句:
SQL> SELECT CONCAT('学习', 'Oracle 19c') FROM dual; CONCAT('学习','ORACLE 19c') ------------------------ 学习Oracle 19c
CONCAT('学习', 'Oracle 19c')返回两个字符串连接后的字符串。
INSTR(s,x)返回x字符在字符串s中的位置。
【例5.24】若要使用INSRT函数进行字符串搜索操作,可执行如下的SQL语句:
字符c位于字符串'hello Oracle'的第10个位置,结果输出为10。
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”。
SUBSTR(s,m,n)函数从字符串中截取指定长度的子字符串,其中参数s代表字符串,m代表截取的位置,n代表截取长度。
【例5.28】若要使用SUBSTR函数从字符串中截取指定长度的子字符串,可执行如下的SQL语句:
当m值为正数时,从字符串左边开始数指定的位置开始截取;当m值为负值时,从字符串右边数开始指定的位置开始截取。
REPLACE (s1,s2,s3)是一个替换字符串的函数,其中参数s1表示搜索的目标字符串;s2表示在目标字符串中要搜索的字符串;s3是可选参数,用它替换被搜索到的字符串,如果该参数不用,就表示从s1字符串中删除搜索到的s2字符串。
【例5.29】若要使用REPLACE函数对字符串进行替换和删除操作,可执行如下的SQL语句:
从执行结果可以看到,第一个替换的情况是:字符串中的“dog”被替换成“cat”;第二个替换的情况是:字符串中的“dog”被删除。
LTRIM(s,n)函数将删除字符串左侧指定的字符串,其中s是目标字符串,n是需要查找的字符串。如果n不指定,就表示删除字符串左侧的空格。
【例5.30】若要使用LTRIM函数对字符串进行删除操作,可执行如下的SQL语句:
从执行结果可以看到,第一个删除的情况是:字符串中的“this”被删除;第二个删除的情况是:字符串左侧的空格被删除。
RTRIM(s,n)函数将删除字符串右侧指定的字符串,其中s是目标字符串,n是需要查找的字符串。如果n不指定,就表示删除字符串右侧的空格。
【例5.31】若要使用RTRIM函数对字符串进行删除操作,可执行如下的SQL语句:
从执行结果可以看到,第一个删除的情况是:字符串中的“dog”被删除;第二个删除的情况是:字符串右侧的空格被删除。
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”;第二个删除的情况是:字符串两端的空格被删除了。
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语句: