반응형
이전 블로그에서 가져온 글입니다. (2020.9.30)
일하면서 종종 데이터들이 콤마(,)로 구분되어 있거나 배열로 저장되어 있을 때 이를 각 row로 뿌려줘야 하는경우가 있었는데
구글링해본 결과 regexp_split_to_table()과 unnest()라는 함수라는 것을 발견함. 구글링 만세
이녀석들이 언제 또 쓰일지는 사실 모르지만 그래도 기록해두자.
실습
아래와 같은 데이터가 있다고 가정하자

1. regexp_split_to_table()
코드
select regexp_split_to_table(data, ',')
from pgsql_array;
결과

설명
- 함수앞에 적혀있는 것처럼 요녀석은 정규식을 통해서 row로 구분짓는다.
- regexp_split_to_table(string, regexp)라고 이해하면 된다.
2. unnest()
코드
select unnest(string_to_array(data, ','))
from pgsql_array;
결과

설명
- unnest()의 경우에는 string 데이터를 한번 배열로 만들어줄 필요가 있다.
- 우선 string_to_array(a,b) 를 간단하게 설명을 하자면 a라는 문자열을 b라는 문자열로 구분지어서 배열로 만들어 주는 PostgreSQL함수다.
- 위 코드를 보면 string_to_array(data,',') 로 되어있는데 이는 data를 콤마로 구분 지어서 배열을 생성해 준다.
- 위에서 만들어준 배열을 하나의 row로 쪼개주는 작업을 해주는 것이 unnest()역할
728x90
'[PostgreSQL]' 카테고리의 다른 글
| [PostgreSQL] JSON 타입 다루기 (0) | 2022.05.08 |
|---|