日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
SQLserver合并分拆表的實(shí)際應(yīng)用代碼

以下的文章主要向大家描述的是SQL server合并分拆表的實(shí)際操組方法的描述,本文是以SQL server合并分拆表的實(shí)際操作的應(yīng)用代碼的方式來引出其實(shí)際操作步驟,以下就是文章的主要內(nèi)容描述。

創(chuàng)新互聯(lián)專注于中大型企業(yè)的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作和網(wǎng)站改版、網(wǎng)站營銷服務(wù),追求商業(yè)策劃與數(shù)據(jù)分析、創(chuàng)意藝術(shù)與技術(shù)開發(fā)的融合,累計(jì)客戶近千家,服務(wù)滿意度達(dá)97%。幫助廣大客戶順利對接上互聯(lián)網(wǎng)浪潮,準(zhǔn)確優(yōu)選出符合自己需要的互聯(lián)網(wǎng)運(yùn)用,我們將一直專注品牌網(wǎng)站設(shè)計(jì)和互聯(lián)網(wǎng)程序開發(fā),在前進(jìn)的路上,與客戶一起成長!

合并分拆表

(Roy)生成測試數(shù)據(jù)

 

 
 
 
  1. if not object_id('Tab') is null  
  2. drop table Tab  
  3. Go  
  4. Create table Tab([Col1] int,[Col2] nvarchar(1))  
  5. Insert Tab  
  6. select 1,N'a' union all  
  7. select 1,N'b' union all  
  8. select 1,N'c' union all  
  9. select 2,N'd' union all  
  10. select 2,N'e' union all  
  11. select 3,N'f'  
  12. Go 

 

合并表:

SQL2000用函數(shù):

 

 
 
 
  1. go  
  2. if object_id('F_Str') is not null  
  3. drop function F_Str  
  4. go  
  5. create function F_Str(@Col1 int)  
  6. returns nvarchar(100)  
  7. as  
  8. begin  
  9. declare @S nvarchar(100)  
  10. select @S=isnull(@S+',','')+Col2 from Tab where Col1=@Col1  
  11. return @S  
  12. end  
  13. go  
  14. Select distinct Col1,Col2=dbo.F_Str(Col1) from Tab  
  15. go  

 

SQL2005用XML:

方法1:

 

 
 
 
  1. select   
  2. a.Col1,Col2=stuff(b.Col2.value('/R[1]','nvarchar(max)'),1,1,'')  
  3. from   
  4. (select distinct COl1 from Tab) a  
  5. Cross apply  
  6. (select COl2=(select N','+Col2 from Tab where Col1=a.COl1 For XML PATH(''), ROOT('R'), TYPE))b 

 

方法2:

 

 
 
 
  1. select   
  2. a.Col1,COl2=replace(b.Col2.value('/Tab[1]','nvarchar(max)'),char(44)+char(32),char(44))  
  3. from   
  4. (select distinct COl1 from Tab) a  
  5. cross apply  
  6. (select Col2=(select COl2 from Tab where COl1=a.COl1 FOR XML AUTO, TYPE)  
  7. .query(' 
  8. {for $i in /Tab[position()
  9. {concat("",string(/Tab[last()]/@COl2))}  
  10. ')  
  11. )b  
  12. SQL05用CTE:  
  13. ;with roy as(select Col1,Col2,row=row_number()over(partition by COl1 order by COl1) from Tab)  
  14. ,Roy2 as  
  15. (select COl1,cast(COl2 as nvarchar(100))COl2,row from Roy where row=1   
  16. union all   
  17. select a.Col1,cast(b.COl2+','+a.COl2 as nvarchar(100)),a.row from Roy a join Roy2 b on a.COl1=b.COl1 and a.row=b.row+1)  
  18. select Col1,Col2 from Roy2 a where row=(select max(row) from roy where Col1=a.COl1) order by Col1 option (MAXRECURSION 0)  

 

生成結(jié)果:

 
 
 
  1. /*  
  2. Col1 COl2  
  3. ----------- ------------  
  4. 1 a,b,c  
  5. 2 d,e  
  6. 3 f  
  7. (3 行受影響)  
  8. */  
  9.  

 

以上的相關(guān)內(nèi)容就是對SQL server合并分拆表的方法的介紹,望你能有所收獲。

【編輯推薦】

  1. SQL Server 字符串在實(shí)際操作中的注意事項(xiàng)
  2. SQL Server 連接字符串的一些聲明
  3. SQL Server 連接字符串的實(shí)現(xiàn)步驟
  4. SQL Server數(shù)據(jù)庫中可用格式字符串干什么?
  5. SQL server 2000 標(biāo)準(zhǔn)版、企業(yè)版的不同之處

網(wǎng)頁名稱:SQLserver合并分拆表的實(shí)際應(yīng)用代碼
網(wǎng)站鏈接:http://www.5511xx.com/article/cdejdso.html