Heim >Backend-Entwicklung >XML/RSS-Tutorial >Beispielcode zum Zusammenführen von Gruppeninformationen mithilfe von XML FOR PATH (Bild und Text)

Beispielcode zum Zusammenführen von Gruppeninformationen mithilfe von XML FOR PATH (Bild und Text)

黄舟
黄舟Original
2017-03-20 16:35:411755Durchsuche


In letzter Zeit ist es bei der Ausführung statistischer Funktionen häufig erforderlich, Inhalte zu gruppieren , wenn Sie nur die Aggregationsfunktion basierend auf verwenden Gruppierte statistische Werte reichen aus. Wenn wir die gruppierte Spalte string verarbeiten, müssen wir unsere eigene Funktion schreiben, um sie zu verarbeiten. Beispielsweise gibt es solche Dateninformationen: Um die oben genannten Daten zu gruppieren und zu erhalten Statistische Ergebnisse:                                                                            Generieren von
XML
mithilfe der T-SQL-Technologie                                        Es besteht keine Notwendigkeit, eine Funktion zu schreiben, um dieses Problem zu lösen.                                                                                                                                                                                     Da die SELECT-Klausel keine Aliase für Spaltennamen angibt, sind die resultierenden Unterelementnamen dieselben wie die entsprechenden Spaltennamen in der SELECT-Klausel. Wenn für den Pfad keine Informationen angegeben werden, wird für jede Zeile im Rowset ein ddd0620b42f67e0c3fae74991e3d1d10-Tag hinzugefügt.

SQL-Anweisung:




Zum Beispiel:

-- ================================================
-- 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. Sie können den Zeilenelementnamen angeben, der überschrieben werden soll die Standardeinstellung d9317ea982f509e4af2fd1501f548877. Beispielsweise gibt die folgende Abfrage ein entsprechendes ddd0620b42f67e0c3fae74991e3d1d10-Element für jede Zeile im Rowset zurück.
SQL-Anweisung:
select
 DepartmentName,
stuff
((
select
 
'
,
'
+
EmpoyeeName 
from
 Employees 
where
 DepartmentName 
=
 e.DepartmentName 
for
 xml path(
''
)),
1
,
1
,
''
) 
as
 EmployeesList 
from
 Employees E
group
 
by
 DepartmentName



Ergebnis:
row

3. Wenn Sie eine Zeichenfolge mit der Länge Null angeben, wird kein Wrapping-Element generiert.
Ergebnis:

select
 DepartmentName,(
select
 
''
+
EmpoyeeName 
from
 Employees 
where
 DepartmentName 
=
 e.DepartmentName 
for
 xml path) 
as
 EmployeesList 
from
 Employees E
group
 
by
 DepartmentName


4. Sie können ein einzelnes Element der obersten Ebene hinzufügen, indem Sie die Option
root in der FOR XML SQL-Anweisung angeben: >

rowEmployee
Ergebnis:

select
 DepartmentName,(
select
 
''
+
EmpoyeeName 
from
 Employees 
where
 DepartmentName 
=
 e.DepartmentName 
for
 xml path(
'
Employee
'
)) 
as
 EmployeesList 
from
 Employees E
group
 
by
 DepartmentName

Das obige ist der detaillierte Inhalt vonBeispielcode zum Zusammenführen von Gruppeninformationen mithilfe von XML FOR PATH (Bild und Text). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn