成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

如何利用XMLFORPATH合并分組信息

這篇文章主要介紹了如何利用XML FOR PATH合并分組信息,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

成都創(chuàng)新互聯(lián)成立與2013年,先為新寧等服務(wù)建站,新寧等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為新寧企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

最近做統(tǒng)計功能的時候經(jīng)常需要用到合并分組內(nèi)容,如果只根據(jù)分組統(tǒng)計數(shù)值用聚合函數(shù)就可以了,如果處理分組后的字符串列呢,我們就必須要自己寫函數(shù)處理了,比如有這樣的數(shù)據(jù)信息:
     
     如何利用XML FOR PATH合并分組信息      

     現(xiàn)在要對上面數(shù)據(jù)進(jìn)行分組,獲取統(tǒng)計結(jié)果:

     如何利用XML FOR PATH合并分組信息      


     實現(xiàn)方式一:
               

-- ================================================
-- Description:合并分組內(nèi)容
-- Author:夏保華
-- Date:2009-08-06
-- ================================================
create   table   Employees(DepartmentName varchar(50),EmpoyeeName  varchar(20))   
insert into Employees   
select '開發(fā)部','小劉' union all
select '開發(fā)部','小王' union all
select '開發(fā)部','小張' 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

實現(xiàn)方式二:利用 T-SQL 技術(shù)生成 XML 的方法
     

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

呵呵,這樣就是不是簡單多了,不用再寫一個函數(shù)去處理這么麻煩了。    

     擴(kuò)展:For XML Path
     1.在該 XML 中,生成的行集中的每個列值都包在元素中。由于 SELECT 子句未指定任何列名別名,因此生成的子元素名稱與 SELECT 子句中相應(yīng)的列名相同。如果未對path指定任何信息,針對行集中的每一行,將添加一個 <row> 標(biāo)記。
     
     SQL語句:

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


     如:
     如何利用XML FOR PATH合并分組信息      

     2.您可以選擇指定行元素名稱,以覆蓋默認(rèn)的 <row>。例如,以下查詢將針對行集中的每一行返回相應(yīng)的 <Employee> 元素。
     
     SQL語句:

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

結(jié)果:
     
     如何利用XML FOR PATH合并分組信息      

     3.如果指定零長度字符串,則將不生成包裝元素。
     結(jié)果:
     
     如何利用XML FOR PATH合并分組信息      

     4.可以通過在 FOR XML 中指定 root選項來添加單個頂級元素
     SQL語句:
   

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

結(jié)果:

     如何利用XML FOR PATH合并分組信息

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“如何利用XML FOR PATH合并分組信息”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

新聞標(biāo)題:如何利用XMLFORPATH合并分組信息
網(wǎng)頁地址:http://jinyejixie.com/article46/posehg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、網(wǎng)站改版、面包屑導(dǎo)航定制網(wǎng)站、網(wǎng)站建設(shè)、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
建德市| 定陶县| 新密市| 通渭县| 宝坻区| 鲁甸县| 界首市| 柞水县| 金华市| 遵义县| 于田县| 黑河市| 淄博市| 龙里县| 黄龙县| 科技| 扬州市| 景洪市| 太保市| 宁海县| 绍兴市| 长汀县| 弋阳县| 海南省| 海南省| 长葛市| 靖江市| 北辰区| 敦煌市| 南木林县| 清涧县| 兴宁市| 淮南市| 定西市| 金山区| 内丘县| 莱芜市| 河北省| 嘉善县| 怀集县| 三原县|