Amazon Redshift
数据库开发人员指南 (API Version 2012-12-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

TRANSLATE 函数

对于给定表达式,将指定字符的所有匹配项替换为指定替代项。现有字符将按其在 characters_to_replacecharacters_to_substitute 参数中的位置映射到替换字符。如果在 characters_to_replace 参数中指定的字符多于在 characters_to_substitute 参数中指定的字符,返回值中将省略 characters_to_replace 参数中的额外字符。

TRANSLATE 与 REPLACE 函数REGEXP_REPLACE 函数相似,只不过 REPLACE 将整个字符串替换为其他字符串,REGEXP_REPLACE 可让您在字符串中搜索正则表达式模式,而 TRANSLATE 进行多次单字符替换。

如果任何参数为空,则返回 NULL。

语法

Copy
TRANSLATE ( expression, characters_to_replace, characters_to_substitute )

参数

expression

要转换的表达式。

characters_to_replace

一个包含要替换的字符的字符串。

characters_to_substitute

一个字符串,其中包含要替换其他字符的字符。

返回类型

VARCHAR

示例

以下示例将替换字符串中的多个字符:

Copy
select translate('mint tea', 'inea', 'osin'); translate ----------- most tin

以下示例将列中的所有值的 at (@) 符号替换为句点:

Copy
select email, translate(email, '@', '.') as obfuscated_email from users limit 10; email obfuscated_email ------------------------------------------------------------------------------------------- Etiam.laoreet.libero@sodalesMaurisblandit.edu Etiam.laoreet.libero.sodalesMaurisblandit.edu amet.faucibus.ut@condimentumegetvolutpat.ca amet.faucibus.ut.condimentumegetvolutpat.ca turpis@accumsanlaoreet.org turpis.accumsanlaoreet.org ullamcorper.nisl@Cras.edu ullamcorper.nisl.Cras.edu arcu.Curabitur@senectusetnetus.com arcu.Curabitur.senectusetnetus.com ac@velit.ca ac.velit.ca Aliquam.vulputate.ullamcorper@amalesuada.org Aliquam.vulputate.ullamcorper.amalesuada.org vel.est@velitegestas.edu vel.est.velitegestas.edu dolor.nonummy@ipsumdolorsit.ca dolor.nonummy.ipsumdolorsit.ca et@Nunclaoreet.ca et.Nunclaoreet.ca

以下示例将空格替换为下划线并去掉列中的所有值的句点:

Copy
select city, translate(city, ' .', '_') from users where city like 'Sain%' or city like 'St%' group by city order by city; city translate --------------+------------------ Saint Albans Saint_Albans Saint Cloud Saint_Cloud Saint Joseph Saint_Joseph Saint Louis Saint_Louis Saint Paul Saint_Paul St. George St_George St. Marys St_Marys St. Petersburg St_Petersburg Stafford Stafford Stamford Stamford Stanton Stanton Starkville Starkville Statesboro Statesboro Staunton Staunton Steubenville Steubenville Stevens Point Stevens_Point Stillwater Stillwater Stockton Stockton Sturgis Sturgis

本页内容: