'select columns into a json from postgres [duplicate]
i have a table employee like this
name value
'e1' 'rahul'
'e2' 'priya'
'e3' 'abhijit'
and i need to extract json from the two columns such that the result is like this
{'e1':'rahul','e2':'priya','e3':'abhijit'}
I've tried the following query and the results is as follows
select row_to_json((name,value)) from employee
O/P
{'f1':'e1','f2':'rahul'}
{'f2':'e1','f2':'priya'}
{'f3':'e1','f2':'abhijit'}
i don't want the f1 and f2 names over there,please advice!
Solution 1:[1]
SELECT ROW_TO_JSON(a) FROM (SELECT name, value FROM employee) a;
Solution 2:[2]
If I get your question correctly, then, as mentioned here, in Postgres 9.4+ you might use json_build_object():
create temp table employee as (select 'key'::text as name, 'val'::text as value);
select json_build_object(name,value) from employee;
Here is the result:
json_build_object
-------------------
{"key" : "val"}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Dmitry Umarov |
| Solution 2 | Erwin Brandstetter |
