본문 바로가기

개발할 때 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

개발의 각궁

Spring | Spring MVC | Spring Boot | Spring Security | Mysql | Oracle | PostgreSQL | Mybatis | JPA | Angular.js | Vue.js | Nuxt.js | React.js | TypeScript | JSP | Frontend | Backend