문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
기술문서:레퍼런스:쿼리:기본:여러_행_문자열_병합 [2025/08/11 10:17] carlito76 ↷ 문서 이름이 기술문서:레퍼런스:쿼리:기본:여러_행의_문자열_합치기에서 기술문서:레퍼런스:쿼리:기본:여러_행_문자열_병합(으)로 바뀌었습니다 |
기술문서:레퍼런스:쿼리:기본:여러_행_문자열_병합 [2025/11/26 18:56] (현재) carlito76 |
||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| + | {{htmlmetatags> | ||
| + | metatag-description=(여러 행 문자열 병합, GROUP_CONCAT, | ||
| + | metatag-og: | ||
| + | }} | ||
| + | |||
| ====== 여러 행 문자열 병합 ====== | ====== 여러 행 문자열 병합 ====== | ||
| - | FIXME | + | <note tip> |
| + | 최소 지원 버전은 약간의 차이가 있을 수 있습니다. | ||
| + | </ | ||
| + | |||
| + | ===== 테이블 명세 ===== | ||
| + | ^ 물리명 | ||
| + | | 해시태그 | hashtag | 문자형 | 100 | | ||
| + | | 정렬 순서 | sort_order | 숫자형 | | | ||
| + | |||
| + | ===== SQL 스크립트 ===== | ||
| + | <sxh sql; gutter: true; title: DDL;> | ||
| + | CREATE TABLE ex_aggregate ( | ||
| + | hashtag VARCHAR(100) NOT NULL | ||
| + | , sort_order INT NOT NULL | ||
| + | ); | ||
| + | </ | ||
| + | |||
| + | <sxh sql; gutter: true; title: DML;> | ||
| + | INSERT INTO ex_aggregate (hashtag, sort_order) VALUES (' | ||
| + | INSERT INTO ex_aggregate (hashtag, sort_order) VALUES (' | ||
| + | INSERT INTO ex_aggregate (hashtag, sort_order) VALUES (' | ||
| + | INSERT INTO ex_aggregate (hashtag, sort_order) VALUES (' | ||
| + | INSERT INTO ex_aggregate (hashtag, sort_order) VALUES (' | ||
| + | INSERT INTO ex_aggregate (hashtag, sort_order) VALUES (' | ||
| + | </ | ||
| + | |||
| + | ===== MySQL/ | ||
| + | <sxh sql; gutter: true;> | ||
| + | /* | ||
| + | MySQL 4.1 이상/ | ||
| + | */ | ||
| + | SELECT | ||
| + | GROUP_CONCAT(hashtag ORDER BY sort_order ASC SEPARATOR ',' | ||
| + | FROM | ||
| + | ex_aggregate | ||
| + | ; | ||
| + | </ | ||
| + | |||
| + | ===== MSSQL ===== | ||
| + | <sxh sql; gutter: true;> | ||
| + | /* | ||
| + | MSSQL 2005 이상 | ||
| + | */ | ||
| + | SELECT | ||
| + | STUFF( | ||
| + | (SELECT | ||
| + | ',' | ||
| + | FROM | ||
| + | ex_aggregate | ||
| + | ORDER BY | ||
| + | sort_order ASC | ||
| + | FOR XML PATH('' | ||
| + | ) | ||
| + | , 1, 1, '' | ||
| + | ; | ||
| + | |||
| + | /* | ||
| + | MSSQL 2017 이상 | ||
| + | */ | ||
| + | -- 정렬 순서 미보장 | ||
| + | SELECT | ||
| + | STRING_AGG(hashtag, | ||
| + | FROM | ||
| + | ex_aggregate | ||
| + | ; | ||
| + | |||
| + | /* | ||
| + | MSSQL 2022 이상 | ||
| + | */ | ||
| + | SELECT | ||
| + | STRING_AGG(hashtag, | ||
| + | FROM | ||
| + | ex_aggregate | ||
| + | ; | ||
| + | </ | ||
| + | |||
| + | ===== Oracle/ | ||
| + | <sxh sql; gutter: true;> | ||
| + | /* | ||
| + | Oracle 11g 이상/ | ||
| + | */ | ||
| + | SELECT | ||
| + | LISTAGG(hashtag, | ||
| + | FROM | ||
| + | ex_aggregate | ||
| + | ; | ||
| + | </ | ||
| + | |||
| + | ===== PostgreSQL ===== | ||
| + | <sxh sql; gutter: true;> | ||
| + | /* | ||
| + | PostgreSQL 9.0 이상 | ||
| + | */ | ||
| + | SELECT | ||
| + | STRING_AGG(hashtag, | ||
| + | FROM | ||
| + | ex_aggregate | ||
| + | ; | ||
| + | </ | ||
| + | |||
| + | {{tag>" | ||