【PostgreSQL】文字を置換する、複数置換する(replace、translate)
文字を置換する、複数置換する方法
文字を置換するにはREPLACEと、TRANSLATEの二つの方法があります。
REPLACEは単語単位で置換するのに対し、TRANSLATEは文字列の先頭から1文字ずつ置換するという違いがあります。
文字を置換する(replace関数)の構文
文字を置換するにはreplace関数を使用します。
-- 文字を置換する構文
replace( 文字列,検索文字列,置換文字列 )
文字を一つ置換する(replace関数)の使用例
replace関数の使用例です。
-- 'everywhere'から'e'を'E'に置換する
select replace('everywhere','e','E'); --"EvErywhErE"
-- 'ABCDE'から'ABC'を'abc'に置換する
select replace('ABCDE','ABC','abc'); --"abcDE"
-- 検索文字列がない場合、エラーにはならずそのままの文字が返る
select replace('ABCDE','XYZ','abc'); --"ABCDE"
文字を複数置換する(translate関数)の構文
文字を複数置換するには、translate関数を使用します。
-- 文字を置換する構文
translate( 文字列,検索文字列,置換文字列 )
-- 検索文字列は、1文字ずつ順番に置換文字列に置換する
-- 次の文は、aをAに、dをDに、gをGに置換することを示す
translate( 文字列,'adg','ADG' ) ;
文字を複数置換する(translate関数)の使用例
translate関数の使用例です。
-- 'everywhere'から'e'を'E'に、'r'を'R'に置換する
select translate('everywhere','er','ER'); --"EvERywhERE"
-- 'ABCDEFGHI'から'a'を'A'に、'd'を'D'に、'g'を'G'に置換する
select translate('abcdefghi','adg','ADG'); --"AbcDefGhi"
-- 検索文字列がない場合、エラーにはならずそのままの文字が返る
select translate('ABCDE','XYZ','abc'); --"ABCDE"