PostgreSQL 文字列を1文字ずつ置換する

PostgreSQL 文字列を1文字ずつ置換する

PostgreSQLで、文字列を1文字ずつ置換する手順を記述してます。

環境

  • OS Rocky Linux release 8.4 (Green Obsidian)
  • PostgreSQL 14.0
  • pgadmin 6.0

文字列を1文字ずつ置換

文字列を1文字ずつ置換する場合は、「translate」を使用します。

translate( 文字列,検索文字列,置換文字列 ) 

実際に、「h」を「i」に、「l」を「m」に置換してみます。

select translate('hello world','hl','im')

実行結果

置換されていることが確認できます。

「translate」は「replace」と違い、1文字ずつなので「cd」も置換されます。

select replace('abcdeacbde','bc','aa'),
       translate('abcdeacbde','bc','aa')

実行結果

また、存在しないものを置換の対象に選択してもエラーにはなりません。

select translate('hello world','!!','mebee')

実行結果

文字数が合わない場合は、以下のような結果になります。

select translate('abcde','ae','12345') 

実行結果