末尾に追加は、array_append関数
SELECT array_append(ARRAY['A', 'B'], 'C')
⇒['A', 'B', 'C']
先頭に挿入は、array_prepend関数
SELECT array_prepend('A', ARRAY['B', 'C'])
⇒['A', 'B', 'C']
インデックス指定の除去をする関数は存在しなく array_remove関数は指定する要素が見つかったものを
全て削除するため目的に合わない。
配列の slice を使うことで対応する。
slice を使った参照
末尾の抽出
SELECT (ARRAY['A', 'B', 'C'])[3:3]
⇒['C']
ARRAY型の tname という列名でサンプルを書くと
SELECT tname[array_length(tname, 1) : array_length(tname, 1)] FROM sampletable
先頭の抽出
SELECT (ARRAY['A', 'B', 'C'])[1:1]
⇒['A']
ARRAY型の tname という列名でサンプルを書くと
SELECT tname[1:1] FROM sampletable
先頭を除去
SELECT (ARRAY['A', 'B', 'C'])[2:array_length(ARRAY['A', 'B', 'C'], 1)]
⇒['B', 'C']
ARRAY型の tname という列名でサンプルを書くと
SELECT tname[2:array_length(tname, 1)] FROM sampletable
末尾を除去
SELECT (ARRAY['A', 'B', 'C'])[1 : array_length(ARRAY['A', 'B', 'C'], 1) - 1]
⇒ ['A', 'B']
ARRAY型の tname という列名でサンプルを書くと
SELECT tname[1:array_length(tname, 1) - 1] FROM sampletable
UPDATE でこのSELECTで書いた操作の句を右辺に書けば更新可能
array_to_string関数
SELECT array_to_string(ARRAY['A','B','C'],',');
⇒ A,B,C
整数配列も
SELECT array_to_string(ARRAY[1, 2, 3],',');
⇒ 1,2,3