| 물리명 | 논리명 | 타입 | 길이 |
|---|---|---|---|
| 해시태그 | hashtag | 문자형 | 100 |
| 정렬 순서 | sort_order | 숫자형 |
CREATE TABLE ex_aggregate ( hashtag VARCHAR(100) NOT NULL , sort_order INT NOT NULL );
INSERT INTO ex_aggregate (hashtag, sort_order) VALUES ('MySQL', 1);
INSERT INTO ex_aggregate (hashtag, sort_order) VALUES ('MariaDB', 2);
INSERT INTO ex_aggregate (hashtag, sort_order) VALUES ('MSSQL', 3);
INSERT INTO ex_aggregate (hashtag, sort_order) VALUES ('Oracle', 4);
INSERT INTO ex_aggregate (hashtag, sort_order) VALUES ('Tibero', 5);
INSERT INTO ex_aggregate (hashtag, sort_order) VALUES ('PostgreSQL', 6);
/* MySQL 4.1 이상/MariaDB 5.1 이상 */ SELECT GROUP_CONCAT(hashtag ORDER BY sort_order ASC SEPARATOR ',') AS hashtag FROM ex_aggregate ;
/*
MSSQL 2005 이상
*/
SELECT
STUFF(
(SELECT
',' + hashtag
FROM
ex_aggregate
ORDER BY
sort_order ASC
FOR XML PATH('')
)
, 1, 1, '') AS hashtag;
;
/*
MSSQL 2017 이상
*/
-- 정렬 순서 미보장
SELECT
STRING_AGG(hashtag, ',') AS hashtag
FROM
ex_aggregate
;
/*
MSSQL 2022 이상
*/
SELECT
STRING_AGG(hashtag, ',') WITHIN GROUP (ORDER BY sort_order ASC) AS hashtag
FROM
ex_aggregate
;
/* Oracle 11g 이상/Tibero 3 이상 */ SELECT LISTAGG(hashtag, ',') WITHIN GROUP (ORDER BY sort_order ASC) AS hashtag FROM ex_aggregate ;
/* PostgreSQL 9.0 이상 */ SELECT STRING_AGG(hashtag, ',' ORDER BY sort_order ASC) AS hashtag FROM ex_aggregate ;