1. 字符函数
1.1. INITCAP
语法如下:
INITCAP(string)
功能描述:
首字母大写。
例子:
select initcap('abc')from dual;输出:Abc
1.2. LOWER
语法如下:
LOWER(string)
功能描述:
转化为小写。
例子:
select lower('ABC')from dual;输出:abc
1.3. UPPER
语法如下:
UPPER(string)
功能描述:
转换为大写。
例子:
select upper('abc')from dual;输出:ABC
1.4. TRIM
语法如下:
TRIM( [ { { LEADING | TRAILING | BOTH } [trim_character ] | trim_character } FROM] trim_source)
参数分析:
LEADING:开头字符
TRAILING:结尾字符
BOTH:开头和结尾字符
trim_character:去除的字符
trim_source:修剪源
功能描述:
1. 删除字符串前后的空格
如果trim函数不使用任何参数时,可以去除字符串前后的空格。
select trim(' abc ')from dual;输出abc
这也是最常见的一种使用方法,都使用默认的参数,默认情况下TRIM会同时删除字符串前后出现的空格。
2. BOTH参数的使用方法
selecttrim(bothfrom' abc ')from dual;
BOTH参数表示同时去除字符串前后所指定的内容(默认情况下删除空格)。
3. LEADING 和TRAILING参数的使用方法
selecttrim(leading'a'from'abcyjw')from dual;输出:bcyjw
selecttrim(trailing'w'from'abcyjw')from dual;输出:abcyj
LEADING参数完成字符串头部字符的删除功能;TRAILING参数完成字符串尾部字符的删除功能。
4. trim_character参数的使用方法
这个参数改变了“删除空格”的默认行为,该参数只允许包含一个字符,不支持多字符。
selecttrim(both'a'from'abcyjwa')from dual;输出:bcyjw
selecttrim(leading'a'from'abcyjw')from dual;输出:bcyjw
selecttrim(trailing'w'from'abcyjw')from dual;输出:abcyj
1.5. LTRIM
语法如下:
LTRIM(str1,str2)
例子:
select ltrim('abcyjw','abc')from dual;输出:yjw
selectltrim('aabbcyjw','abc')from dual;输出:yjw
select ltrim('abdcyjw','abc')from dual;输出:dcyjw
selectltrim('bcyjw','abc')from dual;输出:yjw
1.6. RTRIM
参考LTRIM。
1.7. TRANSLATE
语法如下:
TRANSLATE( string , 'from_str' , 'to_str' )
功能描述:
返回将(所有出现的)from_str中的每个字符替换为to_str中的相应字符以后的string。TRANSLATE是REPLACE所提供的功能的一个超集。如果from_str比to_str长,那么在from_str中而不在to_str中的额外字符将从string中被删除,因为它们没有相应的替换字符。to_str不能为空。Oracle将空字符串解释为NULL,并且如果TRANSLATE中的任何参数为NULL,那么结果也是NULL。
例子:
select translate('abcdef','abc','123')from dual;输出:123def
select translate('abcdef','abc','12')from dual;输出:12def
select translate('abcdef','aic','12')from dual;输出:1bdef
因为from_str和to_str的位置是一一对应的,a对应1,b对应2,i没有对应的值,所以i会被删除。a会替换为1;i因为字符串里没有,所以不作替换;c由于没有对应的替换字符,所以字符串里的c会被删除。
1.8. INSTR
instr函数返回要截取的字符串在源字符串中的位置。只检索一次,就是说从字符的开始到字符的结尾就结束。
语法如下:
instr(string1, string2 [, start_position [, nth_appearance ] ] )
参数分析:
string1表示:源字符串,要在此字符串中查找。
string2表示:要在string1中查找的字符串。
start_position表示:代表string1的哪个位置开始查找。此参数可选,如果省略默认为1,字符串索引从1开始。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。
nth_appearance表示:代表要查找第几次出现的string2。此参数可选,如果省略,默认为 1,如果为负数系统会报错。
备注:
如果String2在String1中没有找到,instr函数返回0。
示例:
select instr('abcdabcdabcd','b')from dual;输出:2
select instr('abcdabcdabcd','b',3)from dual;输出:6
select instr('abcdabcdabcd','b',2,2)from dual;输出:6
select instr('abcdabcdabcd','b', -1,1)from dual;输出:10
1.9. SUBSTR、SUBSTRB
语法如下:
substr( string, start_position, [ length ] )
substrb( string, start_position, [ length ] )
两个函数都是用于截取字符串
参数分析:
string表示:要处理的字符串
start_position表示:截取字符串的开始位置(起始位置是1)
length表示:截取的字符串的长度
备注:
两个函数的差别体现在处理中文上,主要是字节和字符的差别:
1.10. CONCAT
语法如下:
CONCAT(str1,str2)
功能描述:
连接字符串
例子:
select concat('abc','def')from dual;输出:abcdef
1.11. RPAD
rpad函数从右边对字符串使用指定的字符进行填充。
语法如下:
rpad(string, padded_length,[pad_string])
参数分析:
string表示:被填充的字符串。
padded_length表示:字符的长度,是返回的字符串的数量,如果这个数量比原字符串的长度要短,rpad函数将会把字符串截取成从左到右的n个字符;
pad_string是个可选参数,这个字符串是要粘贴到string的右边,如果这个参数未写,rpad函数将会在string的右边粘贴空格。
备注:
1. 该函数也可以用于截取字符串
2. oracle中char类型长度是固定的,插入的数据不足长度,则会在字符串后面自动加上相应的空格,以补足长度。如果查询语句中存在该字段的查询条件,则需要使用rpad函数补足长度。
1.12. LPAD
lpad函数从左边对字符串使用指定的字符进行填充。
语法如下:
lpad (string, padded_length,[pad_string])
参数分析:
string表示:被填充的字符串。
padded_length表示:字符的长度,是返回的字符串的数量,如果这个数量比原字符串的长度要短,lpad函数将会把字符串截取成从左到右的n个字符;
pad_string是个可选参数,这个字符串是要粘贴到string的左边,如果这个参数未写,lpad函数将会在string的左边粘贴空格。
备注:
该函数也可以用于截取字符串