PostgreSQL json配列から行に変換する
- 作成日 2024.05.20
- PostgreSQL
- PostgreSQL
![PostgreSQL json配列から行に変換する](https://mebee.info/wp-content/uploads/2019/09/20160627121830-890x500.jpg)
PostgreSQLで、json配列から行に変換する手順を記述してます。「json_array_elements」を使用することで可能です。textデータとして取得する場合は「json_array_elements_text」を使用します。
環境
- OS CentOS Stream release 9
- PostgreSQL 15.1
- pgadmin4 6.16
json配列から行に変換
json配列から行に変換するには、「json_array_elements」を使用します。
※「josnb型」には「jsonb_array_elements」を使用します。
json_array_elements(jsonデータ);
jsonb_array_elements(jsonbデータ);
実際に、実行してみます。
SELECT
json_array_elements('["aaa", 10, {"id": 10}, null]'::json),
jsonb_array_elements('["aaa", 10, {"id": 10}, null]'::jsonb);
実行結果をみると取得されていることが確認できます。
![](https://mebee.info/wp-content/uploads/2022/12/image-11.png)
型の違う「jsonb」に「json_object_keys」を使用するとエラーとなります。
SELECT
json_array_elements('["aaa", 10, {"id": 10}, null]'::json),
jsonb_array_elements('["aaa", 10, {"id": 10}, null]'::json);
ERROR: 関数jsonb_array_elements(json)は存在しません
LINE 3: jsonb_array_elements('["aaa", 10, {"id": 10}, null]'::json);
^
HINT: 指定した名前と引数型に合致する関数がありません。明示的な型変換が必要かもしれません。
SQL 状態: 42883
文字: 69
実行結果
![](https://mebee.info/wp-content/uploads/2022/12/image-12.png)
空を指定
引数を空にすると、エラーが発生します。
SELECT
json_array_elements();
ERROR: 関数json_array_elements()は存在しません
LINE 2: json_array_elements();
^
HINT: 指定した名前と引数型に合致する関数がありません。明示的な型変換が必要かもしれません。
SQL 状態: 42883
文字: 9
実行結果
![](https://mebee.info/wp-content/uploads/2022/12/image-13.png)
textデータで取得
textデータとして取得する場合は「json_array_elements_text」を使用します。
SELECT
json_array_elements_text('["aaa", 10, {"id": 10}, null]'::json),
jsonb_array_elements_text('["aaa", 10, {"id": 10}, null]'::jsonb);
実行結果
![](https://mebee.info/wp-content/uploads/2022/12/image-14.png)
-
前の記事
PyCharm 実装されているクラスやメソッドに移動するショートカットキー 2024.05.20
-
次の記事
Dart Mapに指定したキーが存在するか確認する 2024.05.21
コメントを書く