ホームページ >バックエンド開発 >XML/RSS チュートリアル >XML FOR PATHを使用してグループ情報を結合するサンプルコード(画像とテキスト)

XML FOR PATHを使用してグループ情報を結合するサンプルコード(画像とテキスト)

黄舟
黄舟オリジナル
2017-03-20 16:35:411738ブラウズ


最近、統計関数を実行するときに、 グループ化 コンテンツを結合する必要があることがよくあります。グループ化された統計値に基づいて 集計 関数 を使用するだけであれば、グループ化された 文字列 列を処理する場合には問題ありません。たとえば、次のようなデータがある場合、それを処理するには独自の関数を作成する必要があります。 T-SQL テクノロジーを使用して m xml
メソッドを生成します

-- ================================================
-- 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
E



、これははるかに簡単で、記述する必要はありませんとても面倒な機能です。

拡張子
: XMLパス用

​​​​ SELECT 句では列名の別名が指定されていないため、結果のサブ要素名は SELECT 句内の対応する列名と同じになります。パスに情報が指定されていない場合は、行セット内の各行に 3c08b624180ad14dc90a29f7a57d64a1 タグが追加されます。 ️ 6 4a2dc8cbbf8f2da- 37.jpg" width="480"/>

2. 行要素名を指定して、デフォルトの 3c08b624180ad14dc90a29f7a57d64a1 をオーバーライドすることを選択できます。たとえば、次のクエリ

は、次の各行に対応する 66891c0016b7a492d96e7707896db2ec 要素。句 语 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



結果:
row> 标记。
      
      SQL语句:

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


      如:
             

      2.您可以选择指定行元素名称,以覆盖默认的 3c08b624180ad14dc90a29f7a57d64a1。例如,以下查询将针对行集中的每一行返回相应的 <Employee
3. 長さゼロの文字列が指定されている場合、パッケージング要素は生成されません。
を使用してくださいout out out through out out‐ through out‐‐‐‐‐‐ through'
'


結果:


以上がXML FOR PATHを使用してグループ情報を結合するサンプルコード(画像とテキスト)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。