PostgreSQL

PostgreSQL 配列の扱い

何かと便利な配列処理

Oracleと比べて便利と感じることいくつかありますが、PostgreSQLの配列の扱いがラクチンです。selectの結果セットを配列化してくれるarray()関数、そして配列を指定区切り文字で文字列化してくれるarray_to_string()は非常に便利です。何れの関数もOracle、MySQLとちらにも相当する関数は存在しません。

array()関数で配列化し、array_to_string()関数で文字列化
-- 検証データ
myposdb=# select * from weather where wdate >= current_date-3 order by wdate
myposdb-# ;
   wdate    | weather
------------+---------
 2022-10-12 | 晴
 2022-10-13 | 雨
 2022-10-14 | 曇
(3 rows)

-- array()関数で配列化
myposdb=# select
myposdb-# array(
myposdb(#   select weather from weather where wdate >= current_date-3 order by wdate
myposdb(# );
   array
------------
 {晴,雨,曇}
(1 row)

-- array_to_string()関数で文字列化
myposdb=# select
myposdb-# pg_catalog.array_to_string(
myposdb(# ARRAY(
myposdb(#   select weather from weather where wdate >= current_date-3 order by wdate
myposdb(# )
myposdb(# ,',')
myposdb-# ;
 array_to_string
-----------------
 晴,雨,曇
(1 row)


myposdb=#

応用編

スポンサーリンク
コピペで使う