PostgreSQL: 다중 행을 하나의 문자열 또는 JSON 타입으로 만들기
PGSQL에서 다중 행 혹은 다중 열 데이터를 한 문자열로 만드는 쿼리 예제입니다.
더 다양한 방법과 상세한 설명은 하단의 "함께보기"에 있는 링크를 통해서 확인 가능합니다.
참고로 문자열 작업 시 가장 많은 실수는 데이터 타입 오류가 많습니다.
서로 다른 데이터 타입이라면 :: 이용하여 데이터 타입을 지정해서 확인해보시고 PGSQL 버전에 따라 지원하지 않는 기능도 있습니다. 테스트 데이터 만들기 CREATE TABLE t (name TEXT, age INT);
INSERT INTO t VALUES ('홍길동', 20);
INSERT INTO t VALUES ('영이', 22);
INSERT INTO t VALUES ('철이', 30);
INSERT INTO t VALUES ('김태균', 25);
INSERT INTO t VALUES ('김태균', 32);
문자열 합치기 SQL Fiddle: 쿼리문 테스트 페이지 -- Query
SELECT name||' / '||age AS name_age FROM t;
-- Result
name_age
-------------
홍길동 / 20
영이 / 22
철이 / 30
김태균 / 25
김태균 / 32
(5 rows)
테이블 전체를 JSON 만들기 SQL Fiddle: 쿼리문 테스트 페이지 -- Query
SELECT array_to_json(array_agg(t)) FROM t;
-- Result: array_to_json
-------------------------
[{"name":"홍길동","age":20},{"name":"영이","age":22},{"name":"철이","age":30},{"name":"김태균&quo…