ID를 기준으로 값 연결
데이터 조작에서는 여러 행의 데이터를 단일 문자열로 결합해야 하는 경우가 많습니다. 이는 작은 조각들로 문자열을 조합하는 연결을 통해 달성할 수 있습니다.
문제 설명:
두 개의 열이 있는 "Results"라는 테이블이 있습니다. Response_ID' 및 '라벨.' 각 "Response_ID"는 여러 "Label" 값에 해당합니다. 목표는 "Response_ID"당 하나의 행이 있고 모든 "Label" 값이 쉼표로 구분된 단일 문자열로 연결되어 있는 새 테이블을 생성하는 것입니다.
해결책:
"Response_ID"를 기준으로 값을 연결하려면 다음 SQL을 사용할 수 있습니다. 쿼리:
select T1.Response_ID, stuff((select ','+T2.Label from Results as T2 where T1.Response_ID = T2.Response_ID for xml path(''), type).value('.', 'varchar(max)'), 1, 1, '') as Label from Results as T1 group by T1.Response_ID
설명:
Stuff(): 이 함수는 문자열을 연결합니다. 다음 인수를 사용합니다:
예:
다음을 고려하세요. table:
Response_ID | Label |
---|---|
12147 | It was not clear |
12458 | Did not Understand |
12458 | Was not resolved |
12458 | Did not communicate |
12586 | Spoke too fast |
12587 | Too slow |
위 쿼리는 다음과 같은 출력을 생성합니다.
Response_ID | Label |
---|---|
12147 | It was not clear |
12458 | Did not Understand,Was not resolved,Did not communicate |
12586 | Spoke too fast |
12587 | Too slow |
참고: 연결된 문자열의 순서를 항상 예측할 수 있는 것은 아닙니다. 주문을 정확하게 제어하려면 하위 쿼리에 "ORDER BY" 문을 사용할 수 있습니다.
위 내용은 SQL에서 여러 행을 단일 문자열로 연결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!