替換()
如果你只想來代替你可以使用函數替換一個或幾個字符(字符串文本,從文本到文本)替換所有出現在字符串的子串。替換函數可用於將一個字符替換爲幾個字符。
翻譯()
如果你想翻譯一些字母到其他字母,你可以將用戶的功能轉換(字符串文本,從文本到文本)中,在相匹配的字符串替換任何字符從中設置相應的字符。
一些數據一起玩:替換功能的
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;
此函數替換字母與字母的名稱列。 Juhänäo成爲Juhanao。
select replace(name, 'ä', 'ae') from xyz;
現在它用ae代替字母ä。
select replace(replace(replace(name, 'ä', 'ae'), 'ü', 'ue'), 'Ü', 'Ue') from xyz;
不是很好,但在這個例子中,所有的都會變成ae,u變成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到A,U到u和u到U.
update xyz set name = translate(name, 'ä,ü,Ü', 'a,u,U');
更新表,以便翻譯所有預定義的字母,並將更改保存到數據庫。更新的結果被以下:
Juhanao
Jurguen
Dannau
Ubudyr
的更多信息:
Replace characters with multi-character strings
Postgresql string functions
的可能的複製[多個分割和分配順序\ _id](HTTP ://stackoverflow.com/questions/32640552/multiple-split-and-assign-order-id)檢查'TRANSLATE'部分。如何將每個字符轉換爲'' –
@JuanCarlosOropeza這是一點點不同的任務 - 你不能使用'translate',因爲它只能用於單個字符。 –