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 '开发部','小刘' 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
>. Beispielsweise gibt die folgende Abfrage ein entsprechendes <
>-Element für jede Zeile im Rowset zurück.
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: > row
Employee
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!