PostgreSQL ROW(タプル)をjson形式で返す

PostgreSQL ROW(タプル)をjson形式で返す

PostgreSQLで、ROW(タプル)をjson形式で返す手順を記述してます。「row_to_json」を使用します。ROWデータは「ROW」で作成することができます。

環境

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

ROW(タプル)をjson形式で返す

ROW(タプル)をjson形式で返すには、「row_to_json」を使用することで可能です。

row_to_json(ROW(データ))

実際に、使用してみます。

SELECT row_to_json(ROW('aaa','bbb','ccc'))
-- {"f1":"aaa","f2":"bbb","f3":"ccc"}

実行結果

ちなみに「ROW」は省略することが可能です。

SELECT row_to_json(('aaa','bbb','ccc'))

以下のように型を定義しておけば、定義してある値を表示することが可能です。

CREATE TYPE num as (
id1 integer,
id2 integer,
id3 integer
);

実行してみます。

SELECT row_to_json((1,2,3)::num);

実行結果をみると表示されていることが確認できます。

ROW(タプル)以外のデータ

ROW(タプル)以外のデータを使用するとエラーとなります。

SELECT row_to_json('aaa');

ERROR:  匿名複合型の入力は実装されていません
LINE 3: SELECT row_to_json('aaa');
                           ^
SQL 状態: 0A000
文字: 22

実行結果