>백엔드 개발 >XML/RSS 튜토리얼 >XML FOR PATH(그림 및 텍스트)를 사용하여 그룹 정보를 병합하는 샘플 코드

XML FOR PATH(그림 및 텍스트)를 사용하여 그룹 정보를 병합하는 샘플 코드

黄舟
黄舟원래의
2017-03-20 16:35:411737검색


최근 통계 기능을 할 때 그룹화 내용을 그룹화한 내용을 기준으로 집계기능만 사용하는 경우가 종종 있습니다. 통계값 ​​​​, 그룹화된 문자열 열을 처리하려면 자체 함수를 작성하여 처리해야 합니다. 예를 들어 다음과 같은 데이터 정보가 있는 경우 위의 데이터를 그룹화하여 통계 결과를 얻습니다. :




 구현 방법 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

 구현 방법 2: T-SQL 기술을 사용하여
XML
생성 방법
기능을 다루기가 너무 번거롭습니다. ~ ~ SELECT 절은 열 이름 별칭을 지정하지 않으므로 결과 하위 요소 이름은 SELECT 절의 해당 열 이름과 동일합니다. 경로에 대한 정보가 지정되지 않으면 행 집합의 각 행에 379174ee2741bd72e078af9de1aaf49c 태그가 추가됩니다.

SQL 문:

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
 
&#39;&#39;
+
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
 
&#39;&#39;
+
EmpoyeeName 
from
 Employees 
where
 DepartmentName 
=
 e.DepartmentName 
for
 xml path(
&#39;
Employee
&#39;
)) 
as
 EmployeesList 
from
 Employees E
group
 
by
 DepartmentName



결과:



위 내용은 XML FOR PATH(그림 및 텍스트)를 사용하여 그룹 정보를 병합하는 샘플 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.