-
[MSSQL] STRING_AGG를 이용하여 같은 그룹 문자열 붙이기WEB/MSSQL 2021. 1. 28. 17:37
[MSSQL] STRING_AGG를 이용하여 같은 그룹 문자열 붙이기
▶ 함수 : STRING_AGG({컬럼명}, {구분자})
▶ 실행쿼리 :
WITH TEMP_TABLE_1 AS
(
SELECT '1반' AS [반정보], '일월~' AS [이름], 90 AS [국어], 80 AS [영어], 70 AS [수학]
UNION ALL
SELECT '1반' AS [반정보], 'Feb!' AS [이름], 70 AS [국어], 60 AS [영어], 100 AS [수학]
UNION ALL
SELECT '1반' AS [반정보], '3월@' AS [이름], 80 AS [국어], 80 AS [영어], 50 AS [수학]
UNION ALL
SELECT '1반' AS [반정보], '사월#' AS [이름], 50 AS [국어], 80 AS [영어], 75 AS [수학]
UNION ALL
SELECT '2반' AS [반정보], 'May$' AS [이름], 70 AS [국어], 65 AS [영어], 45 AS [수학]
UNION ALL
SELECT '2반' AS [반정보], '6월%' AS [이름], 85 AS [국어], 90 AS [영어], 75 AS [수학]
UNION ALL
SELECT '2반' AS [반정보], '칠월~' AS [이름], 95 AS [국어], 65 AS [영어], 70 AS [수학]
UNION ALL
SELECT '2반' AS [반정보], 'Aug!' AS [이름], 50 AS [국어], 70 AS [영어], 95 AS [수학]
UNION ALL
SELECT '3반' AS [반정보], '9월@' AS [이름], 85 AS [국어], 85 AS [영어], 85 AS [수학]
UNION ALL
SELECT '3반' AS [반정보], '십월*' AS [이름], 60 AS [국어], 85 AS [영어], 70 AS [수학]
UNION ALL
SELECT '3반' AS [반정보], 'Nov&' AS [이름], 80 AS [국어], 60 AS [영어], 65 AS [수학]
UNION ALL
SELECT '3반' AS [반정보], '12월^' AS [이름], 100 AS [국어], 60 AS [영어], 75 AS [수학]
)
SELECT [반정보]
, STRING_AGG([이름],', ') AS [명단_정렬X]
, STRING_AGG([이름],', ') WITHIN GROUP (ORDER BY [이름] DESC) AS [명단_정렬O]
FROM TEMP_TABLE_1
GROUP
bY [반정보]▶ 실행화면 :
위의 쿼리 실행화면
참고사이트 : docs.microsoft.com/ko-kr/sql/t-sql/functions/string-agg-transact-sql?view=sql-server-ver15
'WEB > MSSQL' 카테고리의 다른 글
[MSSQL] PARTITION BY를 이용한 그룹 함수 사용 (0) 2021.01.25 [MSSQL] SSMS 접속했던 접속정보 삭제하는법 (0) 2021.01.20 [MSSQL] 프로시져 내 반복문 사용 쿼리 (0) 2021.01.18 [MSSQL] 특정 문자 기준으로 ROW 변환 함수 쿼리 (0) 2021.01.13 [MSSQL] DATABASE 복사 (0) 2021.01.07