PostgreSQL 指定した区切り文字で配列を作成する

PostgreSQL 指定した区切り文字で配列を作成する

PostgreSQLで、指定した区切り文字で配列を作成する手順を記述してます。「string_to_array」に対象の文字列と区切り文字を指定することで可能です。実行結果はpgadmin上で確認してます。

環境

  • OS CentOS Stream release 9
  • PostgreSQL 15.1
  • pgadmin4 6.16

手順

指定した区切り文字で配列を作成するには、「string_to_array」を使用します。

string_to_array(文字列,区切る文字列);

実際に、判定してみます。

SELECT 
string_to_array('a-cd-efg-h', '-'),
string_to_array('12 34 56', ' ');

実行結果を見ると、作成されていることが確認できます。

存在しない区切り文字を指定

存在しない区切り文字を指定すると要素が1つの配列が作成されます。

SELECT 
string_to_array('a-cd-efg-h', '.');

実行結果

null

区切り文字に「null」を指定すると1文字ずつが要素となった配列が作成されます。

SELECT 
string_to_array('a-cd-efg-h', null);

実行結果

サロゲートペア

サロゲートペア文字のような通常の2バイトで1文字で表すところを、4バイトで1文字となるものでも、問題なく動作します。

SELECT 
string_to_array('😂😡🙅😂😡🙅😂😡🙅', '😡');

実行結果

行単位

行単位で取得する場合は「string_to_table」を使用します。

SELECT 
string_to_table('a-cd-efg-h', '-'),
string_to_table('12 34 56', ' '),
string_to_table('😂😡🙅😂😡🙅😂😡🙅', '😡');

実行結果