집 >백엔드 개발 >XML/RSS 튜토리얼 >XML FOR PATH(그림 및 텍스트)를 사용하여 그룹 정보를 병합하는 샘플 코드
최근 통계 기능을 할 때 그룹화 내용을 그룹화한 내용을 기준으로 집계기능만 사용하는 경우가 종종 있습니다. 통계값 , 그룹화된 문자열 열을 처리하려면 자체 함수를 작성하여 처리해야 합니다. 예를 들어 다음과 같은 데이터 정보가 있는 경우 위의 데이터를 그룹화하여 통계 결과를 얻습니다. :
구현 방법 1:
-- ================================================ -- Description:合并分组内容 -- Author:夏保华 -- Date:2009-08-06 -- ================================================ create table Employees(DepartmentName varchar(50),EmpoyeeName varchar(20)) insert into Employees select '开发部','小刘' union all select '开发部','小王' union all select '开发部','小张' union all select '工程部','老吴' union all select '工程部','老李' union all select '市场部','大兵' union all select '市场部','大黄' union all select '市场部','大虾' union all select '市场部','大国' go create function Sum_ByGroup(@DepartmentName varchar(50)) returns varchar(8000) as begin declare @ret varchar(8000) set @ret = '' select @ret = @ret+','+EmpoyeeName from Employees where DepartmentName = @DepartmentName set @ret = stuff(@ret,1,1,'') return @ret end go select DepartmentName,dbo.Sum_ByGroup(DepartmentName) as EmployeesList from Employees group by DepartmentName go
select DepartmentName, stuff (( select ' , ' + EmpoyeeName from Employees where DepartmentName = e.DepartmentName for xml path( '' )), 1 , 1 , '' ) as EmployeesList from Employees E group by DepartmentName
예: 2. 행 요소 이름을 지정하도록 선택할 수 있습니다. 기본 < 재정의 ;
>. 예를 들어, 다음쿼리
는 행 집합의 각 행에 해당하는 ddd0620b42f67e0c3fae74991e3d1d10 SQL 문: row
select DepartmentName,( select '' + EmpoyeeName from Employees where DepartmentName = e.DepartmentName for xml path) as EmployeesList from Employees E group by DepartmentName
결과:
3. 길이가 0인 문자열을 지정하면 래핑 요소가 생성되지 않습니다. row
결과: Employee
4. FOR XML SQL 문에서
root
를 추가할 수 있습니다. :
select
DepartmentName,(
select
''
+
EmpoyeeName
from
Employees
where
DepartmentName
=
e.DepartmentName
for
xml path(
'
Employee
'
))
as
EmployeesList
from
Employees E
group
by
DepartmentName
결과:
위 내용은 XML FOR PATH(그림 및 텍스트)를 사용하여 그룹 정보를 병합하는 샘플 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!