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

黄舟
Freigeben: 2017-03-20 16:35:41
Original
1708 Leute haben es durchsucht


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 <
>-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 &#39;开发部&#39;,&#39;小刘&#39; union all
select &#39;开发部&#39;,&#39;小王&#39; union all
select &#39;开发部&#39;,&#39;小张&#39; union all
select &#39;工程部&#39;,&#39;老吴&#39; union all
select &#39;工程部&#39;,&#39;老李&#39; union all
select &#39;市场部&#39;,&#39;大兵&#39; union all
select &#39;市场部&#39;,&#39;大黄&#39; union all
select &#39;市场部&#39;,&#39;大虾&#39; union all
select &#39;市场部&#39;,&#39;大国&#39;
go 

create function  Sum_ByGroup(@DepartmentName varchar(50))   
returns varchar(8000)   
as   
begin   
    declare @ret varchar(8000)   
    set   @ret  =  &#39;&#39;   
    select  @ret  =  @ret+&#39;,&#39;+EmpoyeeName from Employees where DepartmentName = @DepartmentName   
    set   @ret   =   stuff(@ret,1,1,&#39;&#39;)   
    return   @ret     
end   
go

select DepartmentName,dbo.Sum_ByGroup(DepartmentName) as EmployeesList from Employees
group by DepartmentName
go
Nach dem Login kopieren
2. Sie können den Zeilenelementnamen angeben, der überschrieben werden soll die Standardeinstellung <

>. Beispielsweise gibt die folgende Abfrage ein entsprechendes <
>-Element für jede Zeile im Rowset zurück.

SQL-Anweisung:
select
 DepartmentName,
stuff
((
select
 
&#39;
,
&#39;
+
EmpoyeeName 
from
 Employees 
where
 DepartmentName 
=
 e.DepartmentName 
for
 xml path(
&#39;&#39;
)),
1
,
1
,
&#39;&#39;
) 
as
 EmployeesList 
from
 Employees E
group
 
by
 DepartmentName
Nach dem Login kopieren



Ergebnis:
row

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

select
 DepartmentName,(
select
 
&#39;&#39;
+
EmpoyeeName 
from
 Employees 
where
 DepartmentName 
=
 e.DepartmentName 
for
 xml path) 
as
 EmployeesList 
from
 Employees E
group
 
by
 DepartmentName
Nach dem Login kopieren


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

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage