티스토리 뷰
DB
[postgreSQL] 컬럼에 여러값이 들어가 있는 경우, 문자열 분리 후 행으로 가져오기 unnest(string_to_array )
페루나쵸 2023. 10. 18. 14:54
🔷 PostgreSQL에서 배열을 풀어서 각 요소를 행으로 만드는 함수 unnest
컬럼에 여러값이 들어가있는 경우, 어떻게 SQL로 뽑아낼 것인가?
이게 자바스크립트 등으로 하면 그냥 결과값 가져와서 ,로 자르고 배열에 집어넣고 돌리면서 하면 편한데
SQL로 하려고 하니 어려웠다.
상황 설명 :
A테이블에는 질문에 대한 답이 들어있다. [객관식 복수선택 가능]
B테이블에는 실제로 대답한 답이 들어있다.
answers에 있는 답을 A테이블에서 가져와야 했다.
A테이블
idx
|
q_num [ int 타입 ]
|
q_name
|
1
|
151
|
151번에 대한 답변
|
1
|
152
|
152번에 대한 답변
|
1
|
153
|
153번에 대한 답변
|
1
|
154
|
154번에 대한 답변
|
B테이블
idx
|
answers [ varchar 타입 ]
|
1
|
151, 152
|
1
|
152
|
1
|
151,152,153
|
1
|
153,154
|
SELECT a.idx , a.q_num , q_name
FROM A a
LEFT JOIN B b ON CAST(a.q_num AS character varying) IN (
SELECT DISTINCT UNNEST(string_to_array(b.answers, ','))
)
where a.idx = 1;
일단 a.q_num과 b.answers의 타입이 달라 타입을 변경해주고
PostgreSQL에서 배열을 풀어서 각 요소를 행으로 만드는 함수 unnest사용하면
예쁘게 행으로 잘 뽑힘!
'DB' 카테고리의 다른 글
[postgresql] postgresql 설치하기 - intellij 연결 (0) | 2024.02.06 |
---|---|
[postgresql] case when end / || / <![CDATA[<>]]> (0) | 2023.10.26 |
[postgreSQL] 재귀쿼리 (Recursive) (1) | 2023.10.26 |
[postgresql] COALESCE null인 경우 다른 컬럼 값 가져오기 (0) | 2023.10.18 |
[postgreSQL] union / union all (0) | 2023.10.12 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- vue.js
- 개발자면접질문
- selectOption
- vue라이프사이클
- invokeMethod
- How to generate an uuid in google sheet?
- 와이어샤크문법
- SCP 명령어
- 파라미터받는법
- 파일전송프로토콜
- springMVC #DTO #VO #DAO
- PathVariable
- computed
- pcap저장
- 개발자질문
- 리눅스
- 스프링프레임워크
- 구글스프레드시트
- APP SCRIPT
- selectpicker
- 고유식별자
- 로컬에서서버
- uuid
- ReflectionTestUtils
- 서버포트설정
- nextTick
- centos7
- 패킷캡쳐하는법
- 프론트엔드 #
- 부트스트랩
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함