PostgreSQL 指定した位置から指定した文字数だけ取得する

PostgreSQL 指定した位置から指定した文字数だけ取得する

PostgreSQLで、指定した位置から指定した文字数だけ取得する手順を記述してます。「substring」に位置と文字数を指定することで可能です。存在しない位置を指定した場合は何も返りません。

環境

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

指定した位置から指定した文字数だけ取得

指定した位置から指定した文字数だけ取得したい場合は、「substring」を使用します。

substring(文字列, 取得したい位置, 取得したい文字数)

※取得したい位置が最大数を超えたいた場合は何も返りません

実際に3文字目から、2文字取得してみます。

select substring('ABCDE',3,2)

実行結果

文字列の3文字である「C」から2文字「CD」が取得されていることが確認できます。

指定した位置から最後まで

指定した位置から最後まで取得したい場合は、文字数を取得すれば最後まで取得可能です。

select substring('ABCDE',3,length('ABCDE'))

実行結果

サロゲートペア

サロゲートペアでも、同様に取得可能です。

select substring('😀😇😀😇😀',3,2)

実行結果