Maison > développement back-end > Tutoriel XML/RSS > Exemple de code pour fusionner les informations de groupe à l'aide de XML FOR PATH (image et texte)

Exemple de code pour fusionner les informations de groupe à l'aide de XML FOR PATH (image et texte)

黄舟
Libérer: 2017-03-20 16:35:41
original
1745 Les gens l'ont consulté


Récemment, lors de l'exécution de fonctions statistiques, il est souvent nécessaire de fusionner le regroupement du contenu si vous utilisez uniquement la fonction d'agrégation basée sur le groupe. valeurs statistiques​​, si nous traitons la colonne groupée chaîne , nous devons écrire notre propre fonction pour la traiter. Par exemple, s'il existe de telles informations de données : Pour regrouper les données ci-dessus et obtenir des résultats statistiques. :

                                                                                                       La méthode de génération XML
utilisant la technologie T-SQL
                                      Il n'est pas nécessaire d'écrire une fonction pour gérer ce problème.                                                                                                                                                                                               Étant donné que la clause SELECT ne spécifie aucun alias de nom de colonne, les noms de sous-éléments résultants sont les mêmes que les noms de colonnes correspondants dans la clause SELECT. Si aucune information n'est spécifiée pour le chemin, une balise <
> sera ajoutée pour chaque ligne de l'ensemble de lignes.
Instruction SQL :



-- ================================================
-- 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
Copier après la connexion
Par exemple :

2. Vous pouvez choisir de spécifier le nom de l'élément de ligne, pour remplacer la valeur par défaut <>. Par exemple, la
requête
suivante renverra un élément <

> correspondant pour chaque ligne de l'ensemble de lignes.
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
Copier après la connexion

Instruction SQL :




Résultat : row



3. Si une chaîne de longueur nulle est spécifiée, aucun élément d'habillage ne sera généré.

Résultat :
select
 DepartmentName,(
select
 
&#39;&#39;
+
EmpoyeeName 
from
 Employees 
where
 DepartmentName 
=
 e.DepartmentName 
for
 xml path) 
as
 EmployeesList 
from
 Employees E
group
 
by
 DepartmentName
Copier après la connexion



4. Vous pouvez ajouter un seul élément de niveau supérieur en spécifiant l'option
root
dans l'instruction FOR XML SQL : row Employee


Résultat :
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
Copier après la connexion


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal