[SQL] SQL : 집계 문자열 함께
SQLSQL : 집계 문자열 함께
SQL 쿼리를 사용하여 내 SQL Server 2005 데이터베이스에서, 사람이 함께 하나 개의 필드에 의해 그룹의 기록에 가장 좋은 방법을 알고, 서로 값의 쉼표로 구분 된 목록을 얻을 수 있습니까? 그래서 만약 내가 가진 :
UserID Code
1 A
1 C5
1 X
2 V3
3 B
3 D
3 NULL
3 F4
4 NULL
내가 얻을 것입니다 :
UserID Code
1 A,C5,X
2 V3
3 B,D,F4
4 NULL
어떤 도움을 주셔서 감사합니다.
해결법
-
==============================
1.
WITH Data AS ( SELECT 1 UserId, 'A' Code UNION ALL SELECT 1, 'C5' UNION ALL SELECT 1, 'X' UNION ALL SELECT 2, 'V3' UNION ALL SELECT 3, 'B' UNION ALL SELECT 3, 'D' UNION ALL SELECT 3, NULL UNION ALL SELECT 3, 'F4' UNION ALL SELECT 4, NULL ) SELECT U.UserId, STUFF(( SELECT ','+Code FROM Data WHERE Data.UserID = U.UserID FOR XML PATH('') ), 1, 1, '') Code FROM (SELECT DISTINCT UserID FROM Data) U
그냥 테이블 이름으로 데이터 CTE를 교체하면됩니다.
-
==============================
2.형태의 읽어라의 완전한 검토는 SQL에 그이해야 할 일
형태의 읽어라의 완전한 검토는 SQL에 그이해야 할 일
http://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/
from https://stackoverflow.com/questions/5452681/sql-aggregating-strings-together by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 총 시간은 하루 MySQL의에서 일하기 (0) | 2020.06.11 |
---|---|
[SQL] 다가오는 생일을 선택 MYSQL (0) | 2020.06.11 |
[SQL] 두 번째 SELECT 쿼리의 경우 첫 번째 SELECT 반환 0 행 (0) | 2020.06.11 |
[SQL] SQL에 LINQ : 어떻게 이름이 변경되는 자동 생성 된 개체 이름을 중지합니까? (0) | 2020.06.11 |
[SQL] 포스트 그레스에 절을 반환 인 UPDATE에서 선택할 수 없습니다 (0) | 2020.06.11 |