字符串截取
格式
格式1:
substr(string,start_pos,length)
格式2:
substr(string,start_pos)
说明
从指定位置start_pos截取字符串string的length位,如果不指定length(格式2)则从指定位置start_pos截取字符串string。
start_pos等于0或者1均从左边第一位开始截取。
如果start_pos为负整数,则从右截取字符串。
示例
–abc abc cdef def
select substr(‘abcdef’, 0, 3),
substr(‘abcdef’, 1, 3),
substr(‘abcdef’, 3),
substr(‘abcdef’, -3)
from dual;
查找子串
格式
instr(string,sub_string,start_pos,times)
说明
从字符串string的指定位置start_pos开始查询子串sub_string第times次出现的位置。
start_pos,times为可选参数,默认值均为1
示例
–7
select instr(‘abcfdgfdhd’, ‘fd’, 1, 2) from dual;
字符串连接
–Hello world
select ‘Hello’ || ’ world’ from dual;
去掉字符串首尾空格
ltrim 去字符串首部空格
rtrim 去字符串尾部空格
trim 去字符串首尾空格
– a b c a b c a b c
select ltrim(’ a b c ‘) s1, rtrim(’ a b c ‘) s2, trim(’ a b c ') s3
from dual;
去掉前导和后缀
与trim类似,去掉前导使用关键字leading,去掉后缀使用关键字trailing,都去除不实用关键字
–abc111 111abc abc
select trim(leading ‘1’ from ‘111abc111’),
trim(trailing ‘1’ from ‘111abc111’),
trim(‘1’ from ‘111abc111’)
from dual;
字符串替换
格式
replace(string,sub_string1,sub_string2)
说明
用字符串sub_string2替代string中的sub_string1,如果不指定sub_string2则删除string中的sub_string1
示例
–axyc
select replace(‘abc’, ‘b’, ‘xy’) from dual;
–ac
select replace(‘abc’, ‘b’) from dual;
字符串转译
格式
translate(string,serial1,serial2)
说明
用序列serial2中的字符一一替换serial1中的字符,如果不指定则删除
注意:序列serial1和serial2左对齐一一对译
示例
–cba
select translate(‘abc’, ‘ac’, ‘ca’) from dual; – x是1位
返回字符串首字母的ascii值
–97 45499 45489
select ascii(‘a’), ascii(‘被拒’), ascii(‘北京’) from dual;
返回ascii值对应的字母
–a
select chr(97) from dual;
计算字符串长度
注意在Oracle现有版本中一个中文字的长度为1
–6 2
select length(‘abcdef’), length(‘北京’) from dual;
字符大小写切换
initcap 首字母大写
lower 转小写
upper 转大写
注意:只争对英文字母,对汉字无效
示例
–背景 abccd DEF Efg
select lower(‘背景’), lower(‘aBCcd’), upper(‘def’), initcap(‘efg’)
from dual;
字符串填充
用于控制输出格式
lpad 左添充
lpad(string,length,pad_char)
string为待优化输出格式字符串,length为输出字符串总长度,pad_char为填充字符串
如果length小于string的长度,自动截取string到length位
rpad 右填充
rpad(string,length,pad_char)
示例
–funccccc ====func func----
select lpad(‘funccccccccccccccccccc’, 8, ‘=’),
lpad(‘func’, 8, ‘=’),
rpad(‘func’, 8, ‘-’)
from dual;
通过正则表达式分割字符串
格式
regexp_substr(String, pattern, position, occurrence, modifier)
说明
string:需要进行正则处理的字符串
pattern:进行匹配的正则表达式
position:起始位置,从字符串的第几个字符开始正则表达式匹配,默认为1
occurrence:获取第几个分割出来的组,分割后最初的字符串会按分割的顺序排列成组,默认为1
modifier:模式–‘i’不区分大小写进行检索;‘c’区分大小写进行检索,默认为’c’
示例
–d D D 5
select regexp_substr(‘daefaDH5AF12dafe’, ‘[a-z]’),
regexp_substr(‘daefaDH5AF12dafe’, ‘[^a-z]’),
regexp_substr(‘daefaDH5AF12dafe’, ‘[^a-z]’, 1, 1, ‘c’),
regexp_substr(‘daefaDH5AF12dafe’, ‘[^a-z]’, 1, 1, ‘i’)
from dual;
正则表达式
查看包含特定字符串纪录
–X
select * from dual where ‘hello’ like ‘%ll%’;
–X
select * from dual where instr(‘Hello’, ‘ll’) > 0;
本文详细介绍了Oracle数据库中常用的字符串操作函数,包括substr()、instr()、replace()、translate()、ascii()、chr()、length()、initcap()、lower()、upper()、lpad()、rpad()、regexp_substr()等。这些函数涵盖了字符串截取、查找、替换、转译、长度计算、大小写转换、填充以及正则表达式操作等方面,是数据库查询和数据处理的重要工具。
3万+

被折叠的 条评论
为什么被折叠?



