SQL Sever 에 서 는 SQL 문 구 를 사용 하여 중복 줄 데 이 터 를 한 줄 로 합 쳐 쉼표 로 구분 합 니 다.

정의 표 변수

DECLARE @T1 table
(
UserID int ,
UserName nvarchar(50),
CityName nvarchar(50)
);

insert into @T1 (UserID,UserName,CityName) values (1,'a',' ')
insert into @T1 (UserID,UserName,CityName) values (2,'b',' ')
insert into @T1 (UserID,UserName,CityName) values (3,'c',' ')
insert into @T1 (UserID,UserName,CityName) values (4,'d',' ')
insert into @T1 (UserID,UserName,CityName) values (5,'e',' ')

select * from @T1

-----
SELECT CityName,STUFF((SELECT ',' + UserName FROM @T1 subTitle WHERE CityName=A.CityName FOR XML PATH('')),1, 1, '') AS A
FROM @T1 A
GROUP BY CityName

----
SELECT B.CityName,LEFT(UserList,LEN(UserList)-1)
FROM (
  SELECT CityName,(SELECT UserName+',' FROM @T1 WHERE CityName=A.CityName FOR XML PATH('')) AS UserList
  FROM @T1 A
  GROUP BY CityName
     ) B

stuff(select ',' + fieldname  from tablename for xml path('')),1,1,'')

이 문장 은 여러 줄 의 fieldname 필드 의 내용 을 연결 하여 쉼표 로 구분 하 는 역할 을 합 니 다.
for xml path 는 SQL Server 2005 이후 버 전이 지원 하 는 XML 생 성 방식 입 니 다.
stuff 함수 의 역할 은 문자열 의 맨 앞 에 있 는 쉼표 구분 자 를 제거 하 는 것 입 니 다.
효과 그림:

좋은 웹페이지 즐겨찾기