개발할 때 data를 json형태로 만들어서 보낼 일들이 꽤 있었다.
row_to_json을 주로 사용하였지만 다른 쿼리문들을 보니 json_agg을 사용하는 경우도 있었다.
둘 다 json형태로 보내지만 어떤 차이가 있는 지를 알아보았다.
1. ROW_TO_JSON
ROW_TO_JSON은 한 행을 json형태로 만든 것으로 하나의 칼럼에 한 로우(row)씩 들어가 있다.
select row_to_json(T)::text as json
from (
select 'kim' as name, '2020' as year
union all
select 'shin' as name, '2021' as year
) as T
2. JSON_AGG
JSON_AGG은 한 행을 json형태로 만들고 하나의 칼럼에 모든 로우(row)가 배열의 형태로 들어가 있다.
select JSON_AGG(T)::text as json
from (
select 'kim' as name, '2020' as year
union all
select 'shin' as name, '2021' as year
) as T
#row_to_json #json #postgrel
'DataBase > PostgreSQL' 카테고리의 다른 글
[PostgreSQL] USING (1) | 2022.08.01 |
---|---|
[PostgreSQL] 이전 행 및 다음 행을 비교하는 방법 - Lag와 Lead (1) | 2022.03.11 |
[PostgreSQL] 구분자로 구분된 문자열을 array 배열로 받기(split_part, string_to_array, unnest) (0) | 2022.02.21 |
[PostgreSQL] drop, delete, truncate의 차이점 (1) | 2022.02.21 |
[PostgreSQL] 프로시저(Procedure) (0) | 2021.12.27 |