翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
TRANSLATE 関数
任意の式において、指定された文字をすべて、指定された別の文字に置き換えます。既存の文字は、characters_to_replace 引数および characters_to_substitute 引数内の位置により置換文字にマッピングされます。characters_to_replace 引数で characters_to_substitute 引数よりも多くの文字が指定されている場合、characters_to_replace 引数からの余分な文字は戻り値で省略されます。
TRANSLATE は、REPLACE 関数や REGEXP_REPLACE 関数 と似ています。ただし、REPLACE は 1 つの文字列全体を別の文字列に置換し、REGEXP_REPLACE を使用すると正規表現パターンの文字列を検索できますが、TRANSLATE は複数の単一文字置換を行います。
いずれかの引数が null である場合、戻り値は NULL になります。
構文
TRANSLATE ( expression, characters_to_replace, characters_to_substitute )
引数
- expression
-
変換する式。
- characters_to_replace
-
置換する文字を含む文字列。
- characters_to_substitute
-
代入する文字を含む文字列。
戻り型
VARCHAR
例
以下の例では、文字列内の複数の文字が置換されます。
select translate('mint tea', 'inea', 'osin'); translate ----------- most tin
次の例では、列内のすべての値のアットマーク (@) がピリオドに置き換えられます。
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
次の例では、列内のすべての値のスペースがアンダースコアに置き換えられ、ピリオドが削除されます。
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