FC2ブログ

Postgresqlで行と配列と文字列の相互変換

PostgreSQLで行と配列と文字列の相互変換の方法をまとめました。

・テーブル例
SELECT t1.id FROM (VALUES (1, 'a'), (2, 'b'), (3, 'c')) AS t1(id, name)


1
2
3

・列を配列にする。
集約関数
SELECT array_agg(t1.id) FROM (VALUES (1, 'a'), (2, 'b'), (3, 'c')) AS t1(id, name)


{1,2,3}

普通の関数
SELECT ARRAY(SELECT t1.id FROM (VALUES (1, 'a'), (2, 'b'), (3, 'c')) AS t1(id, name))


{1,2,3}

・配列を行にする。
SELECT unnest(ARRAY[1,2,3])


1
2
3

・配列を文字列にする
SELECT array_to_string(ARRAY[1,2,3], ',')


1,2,3

・文字列を配列にする
SELECT regexp_split_to_array('1,2,3', ',')


{1,2,3}

・文字列を列にする
SELECT regexp_split_to_table('1,2,3', ',')


1
2
3

・列を文字列にする
SELECT array_to_string((SELECT array_agg(id) FROM (VALUES (1, 'a'), (2, 'b'), (3, 'c')) AS t1(id, name)), ',')


1,2,3
スポンサーサイト