如何从单个元素组成 postgres jsonb 数组
How to compose a postgres jsonb array from individual elements
我想创建一个 postgres jsonb 数组:[{"score": 4500, "match": 45}, {"score": 2505, "match": 467}, {"score": 967, "match": 678}]
我有单独的元素 {"score": 4500, "match": 45}, {"score": 2505, "match": 467}
等等。
我不想把它分解成键值对,然后构建一个jsonb对象。 postgres 9.3 有办法吗?
jsonb
是 introduced in Postgres 9.4。在 Postgres 9.3.x 你只能坚持使用 json
:
WITH json_elements(data) AS ( VALUES
('{"score": 4500, "match": 45}'::JSON),
('{"score": 2505, "match": 467}'::JSON)
)
SELECT array_to_json(array_agg(je.data)) AS result
FROM json_elements je;
结果是:
result
--------------------------------------------------------------
[{"match": 45, "score": 4500},{"match": 467, "score": 2505}]
(1 row)
我想创建一个 postgres jsonb 数组:[{"score": 4500, "match": 45}, {"score": 2505, "match": 467}, {"score": 967, "match": 678}]
我有单独的元素 {"score": 4500, "match": 45}, {"score": 2505, "match": 467}
等等。
我不想把它分解成键值对,然后构建一个jsonb对象。 postgres 9.3 有办法吗?
jsonb
是 introduced in Postgres 9.4。在 Postgres 9.3.x 你只能坚持使用 json
:
WITH json_elements(data) AS ( VALUES
('{"score": 4500, "match": 45}'::JSON),
('{"score": 2505, "match": 467}'::JSON)
)
SELECT array_to_json(array_agg(je.data)) AS result
FROM json_elements je;
结果是:
result
--------------------------------------------------------------
[{"match": 45, "score": 4500},{"match": 467, "score": 2505}]
(1 row)