代替()
如果您只想替换一个或几个字符,可以使用函数replace(string text, from text, to text)来替换字符串子字符串中的所有出现位置。替换功能可用于将一个字符替换为多个字符。
翻译()
如果你想将一些字母翻译成其他字母,你可以使用函数translate(string text, from text, to text),它将字符串中与from中的字符匹配的任何字符替换为to集中的相应字符。
一些可以使用的数据:
drop table if exists xyz;
create table xyz (
id serial not null,
name varchar(30)
);
insert into xyz (name) values
('Juhänäo'),
('Jürgüen'),
('Dannäu'),
('Übüdyr');
替换函数示例:
select replace(name, 'ä', 'a') from xyz;
此函数将名称列中的字母 ä 替换为字母 a。 Juhanao 变成 Juhanao。
select replace(name, 'ä', 'ae') from xyz;
现在它用 ae 替换字母 ä。
select replace(replace(replace(name, 'ä', 'ae'), 'ü', 'ue'), 'Ü', 'Ue') from xyz;
不太好,但在这个例子中,所有 ä 都变成了 ae,ü 都变成了 ue,Ü 都变成了“Ue”。
update xyz set name = replace(replace(replace(name, 'ä', 'ae'), 'ü', 'ue'), 'Ü', 'Ue');
更改字母并更新行。更新结果如下:
Juhaenaeo
Juergueen
Dannaeu
Uebuedyr
翻译功能示例:
select translate(name, 'ä,ü,Ü', 'a,u,U') from xyz;
将所有字母 ä 翻译为 a、ü 翻译为 u、Ü 翻译为 U。
update xyz set name = translate(name, 'ä,ü,Ü', 'a,u,U');
更新表,以便翻译所有预定义字母并将更改保存到数据库中。更新结果如下:
Juhanao
Jurguen
Dannau
Ubudyr
更多信息:
用多字符字符串替换字符 https://stackoverflow.com/questions/24676779/replace-characters-with-multi-character-strings
Postgresql 字符串函数 https://www.postgresql.org/docs/current/static/functions-string.html