> 데이터 베이스 > MySQL 튜토리얼 > SQL을 사용하여 응답 ID를 기반으로 레이블을 연결하는 방법은 무엇입니까?

SQL을 사용하여 응답 ID를 기반으로 레이블을 연결하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-31 21:36:11
원래의
291명이 탐색했습니다.

How to Concatenate Labels Based on Response ID Using SQL?

ID 기반 값 연결: SQL을 사용한 솔루션

데이터 작업 시 공유 ID 기반 값을 연결해야 하는 경우가 자주 발생합니다. . 이 시나리오에서는 응답 ID 및 관련 레이블 목록이 포함된 테이블을 보게 됩니다. 우리의 목표는 이 데이터를 각 행에 응답 ID와 쉼표로 구분된 레이블 목록이 표시되는 형식으로 변환하는 것입니다.

이를 달성하기 위해 SQL의 그룹화 및 연결 기능을 활용할 수 있습니다. @T라는 임시 테이블을 선언하고 여기에 샘플 데이터를 채우는 것으로 시작합니다. 아래 쿼리는 관련 단계를 간략하게 설명합니다.

select T1.Response_ID,
       stuff((select ','+T2.Label
              from @T as T2
              where T1.Response_ID = T2.Response_ID
              for xml path(''), type).value('.', 'varchar(max)'), 1, 1, '') as Label
from @T as T1
group by T1.Response_ID
로그인 후 복사
  1. 그룹화: group by T1.Response_ID 절을 사용하여 Response_ID별로 데이터를 그룹화합니다. 이 단계에서는 각 응답 ID에 대한 단일 레이블 집합에 대해 작업을 수행합니다.
  2. 하위 쿼리: 각 그룹 내에서 하위 쿼리를 사용하여 해당 응답 ID와 연결된 레이블을 검색합니다. 하위 쿼리는 Label 값을 검색하여 이를 쉼표로 구분된 단일 문자열로 결합합니다. .value('.', 'varchar(max)') 부분은 레이블에 XML에 적합하지 않은 문자가 포함된 경우를 처리합니다.
  3. 연결: stuff() 함수는 쉼표로 구분된 레이블을 단일 문자열로 묶습니다. 제거 인수로 1, 1, ''을 지정하여 선행 쉼표를 제거합니다.
  4. 투영: 마지막으로 select 문은 Response_ID와 연결된 Label 열을 원하는 출력으로 투영합니다.

이 쿼리를 실행하면 각 행이 관련 레이블이 있는 응답 ID를 나타내는 변환된 데이터를 얻을 수 있습니다. 쉼표로 연결되고 구분됩니다. 이 솔루션은 공유 식별자를 기반으로 데이터를 집계하고 표시하는 효율적인 방법을 제공합니다.

위 내용은 SQL을 사용하여 응답 ID를 기반으로 레이블을 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿