쿼리로 열(rows)를 comma 로 구분해서 한줄로 표현하고 싶으면 어떻게 하나요?

1 답변

0 투표

SQL Server에서 콤마로 구분된 텍스트를 생성하려면 `STRING_AGG` 함수를 사용할 수 있습니다. 이 함수는 SQL Server 2017(버전 14.x) 이상에서 사용 가능합니다.

기본적인 사용법은 다음과 같습니다.

SELECT STRING_AGG(column_name, ', ') AS aggregated_column
FROM table_name

예를 들어, `students` 테이블에서 모든 `student_name`을 콤마로 구분된 문자열로 만들고 싶다면 다음과 같이 쿼리를 작성할 수 있습니다.

SELECT STRING_AGG(student_name, ', ') AS student_names
FROM students

이렇게 하면 `student_names` 컬럼에 모든 학생 이름이 콤마로 구분된 하나의 문자열로 저장됩니다.

이전 버전의 SQL Server에서는 `STRING_AGG` 함수가 없기 때문에, `FOR XML PATH`를 사용해야 할 수도 있습니다.

SELECT STUFF(
         (SELECT ', ' + student_name 
          FROM students
          FOR XML PATH('')), 1, 2, '') AS student_names

`FOR XML PATH('')`를 사용하면 각 row를 하나의 문자열로 연결합니다. 그 후 `STUFF` 함수를 사용하여 맨 앞의 불필요한 콤마를 제거합니다.

구로역 맛집 시흥동 맛집
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
add
...