상세 컨텐츠

본문 제목

[MSSQL] string_agg 세로 데이터 한 줄 출력

SQL Server

by 코딩하는 박줄기 2022. 9. 27. 23:30

본문

728x90
반응형

string_agg 세로 문자열 값을 연결하고 그 사이에 구분 기호 값을 배치합니다. 구분 기호는 문자열 끝에 추가되지 않습니다.

 

* Microsoft SQL Server 2019 [AdventureWorks2019], Microsoft SQL Server 2014 [AdventureWorks2014]

STRING_AGG ( expression, separator ) [ <order_clause> ]

<order_clause> ::=   
    WITHIN GROUP ( ORDER BY <order_by_expression_list> [ ASC | DESC ] )

사용법

   A. ',' 로 구분된 이름 목록 생성

SELECT STRING_AGG (FirstName, ', ') AS names FROM Person.Person WHERE BusinessEntityID < 100;

 

   B. NULL 값 없이 쉼표로 구분된 이름 목록 생성

SELECT STRING_AGG(ISNULL(FirstName,'N/A'), ',') AS names FROM Person.Person WHERE BusinessEntityID < 100;

 

  C. 여러 컬럼값을 연결하고 쉼표로 구분된 이름 목록 생성

SELECT STRING_AGG(CONCAT(FirstName, ' ', LastName, '(', ModifiedDate, ')'), ' ,') AS names FROM Person.Person WHERE BusinessEntityID < 100;

 

   D. SQL Server 2017 미만 버전에서의 사용

SELECT STUFF((SELECT CONCAT(',', FirstName) FROM [Person].[Person] FOR XML PATH('')), 1, 1, '')

 

참고

728x90
반응형

관련글 더보기

댓글 영역