准备数据
CREATE TABLE GradesTable (Name VARCHAR2(6), Languages VARCHAR2(6),Mathematics VARCHAR2(6), English VARCHAR2(6) );
insert into GradesTable (Name,Languages,Mathematics,English) values('李明','88','67','98');
insert into GradesTable (Name,Languages,Mathematics,English) values('阿珂','88','67','98');
insert into GradesTable (Name,Languages,Mathematics,English) values('唐三','88','67','98');
1、replace
(1)语法
- REPLACE(char, search_string,replacement_string)
(2)用法:
- 将char中的字符串search_string全部转换为字符串replacement_string;
- 当replacement_string为null时,相当于剔除search_string中的search_string字段。
(3)举例
--将name字段中name为李明的数据中的‘李’替换为‘唐’
select replace(name,'李','唐') from GradesTable where name='李明'; --执行结果:唐明
--将name字段中name为李明的数据中的‘李’剔除
select replace(name,'李') from GradesTable where name='李明';--执行结果:明
2、regexp_replace
(1)语法
把 str_source 中的 pattern_str 字符串剔除
regexp_replace(str_source,pattern_str)
同replace
regexp_replace(str_source,pattern_str,str)
(2)举例
--将name字段中name为李明的数据中的‘李’替换为‘唐’
select regexp_replace(name,'李','唐') from GradesTable where name='李明'; --执行结果:唐明
--将name字段中name为李明的数据中的‘李’剔除
select regexp_replace(name,'李') from GradesTable where name='李明'; --执行结果:明
3、translate
(1)语法:translate(char, from, to)
(2)用法:
- 返回将出现在from中的每个字符替换为to中的相应字符以后的字符串;
- 若from比to字符串长,那么在from中比to中多出的字符将会被删除;
- 三个参数中有一个是空,返回值也将是空值。
(3)举例
--将name字段中name为李明的数据中的‘李’替换为‘唐’
select translate(name,'李','唐') from GradesTable where name='李明'; --执行结果:唐明