-
MSSQL STRING_AGGIT/SQL 2024. 5. 5. 09:59
MSSQL 에서 특정 컬럼의, 여러 로우의 값들을 , 한 컬럼으로 읽어들이는 함수입니다.
STUFF + FOR XML PATH 의 대용이라고 생각하면 되는데, 사용하기 편하고 성능도 나은것 같습니다.
STRING_AGG 구문
STRING_AGG ( expression, separator ) [ <order_clause> ] <order_clause> ::= WITHIN GROUP ( ORDER BY <order_by_expression_list> [ ASC | DESC ] )
STRING_AGG 예제
예제를 위한 데이터 생성
CREATE TABLE SAMPLE1 ( CLS_NM VARCHAR(10) ,NM_KR VARCHAR(10) ) INSERT INTO SAMPLE1 VALUES ( '병아리', '김은총') INSERT INTO SAMPLE1 VALUES ( '병아리', '이민준') INSERT INTO SAMPLE1 VALUES ( '병아리', '김현주') INSERT INTO SAMPLE1 VALUES ( '토끼', '최동현') INSERT INTO SAMPLE1 VALUES ( '토끼', '박민재') INSERT INTO SAMPLE1 VALUES ( '토끼', '지서연')
데이터 생성 결과는 아래와 같습니다.
반과 학생 이름을 나열했습니다.
예제데이터 이제 STRING_AGG 를 이용해서 각 반별로 학생 이름을 가로로 배치해보겠습니다.
SELECT CLS_NM, STRING_AGG(NM_KR, ',') AS NMS FROM SAMPLE1 GROUP BY CLS_NM
결과는 아래와 같습니다.
쿼리 결과 'IT > SQL' 카테고리의 다른 글
MSSQL REPLACE, TRANSLATE 문자 바꾸기 (1) 2024.04.25 MSSQL DELETE 및 DELETE JOIN (0) 2024.04.22 MSSQL TRIM 공백제거 (0) 2024.04.21 SSMS 쿼리 후에 한글로 자동변환 될 때 (0) 2024.04.17 MSSQL 문자열 붙이기 CONCAT (0) 2024.04.17