成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL server合并分拆表的實際應用代碼

數據庫 SQL Server
我們今天主要向大家講述的是SQL server合并分拆表的實際操組方法的描述,以及對其實際應用代碼的描述,以下就是文章的主要內容。

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

合并分拆表

(Roy)生成測試數據

 

  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用函數:

 

  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('<Tab> 
  8. {for $i in /Tab[position()<last()]/@COl2 return concat(string($i),",")}  
  9. {concat("",string(/Tab[last()]/@COl2))}  
  10. </Tab>')  
  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)  

 

生成結果:

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

 

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

【編輯推薦】

  1. SQL Server 字符串在實際操作中的注意事項
  2. SQL Server 連接字符串的一些聲明
  3. SQL Server 連接字符串的實現步驟
  4. SQL Server數據庫中可用格式字符串干什么?
  5. SQL server 2000 標準版、企業版的不同之處
責任編輯:佚名 來源: 互聯網
相關推薦

2010-07-07 11:28:12

SQL Server索

2010-06-17 10:02:12

SQL Server數

2010-05-18 16:29:44

MySQL修改表

2010-11-10 14:54:24

SQL Server系

2010-07-12 17:37:03

SQL Server

2010-07-12 10:13:44

SQL Server表

2010-07-14 11:35:57

SQL Server修

2010-07-08 16:44:21

SQL Server索

2010-04-06 16:00:19

Oracle更改表

2010-04-09 16:26:53

Oracle join

2010-04-19 11:37:20

Oracle數據庫

2010-07-21 15:22:07

2010-07-07 11:03:21

SQL Server索

2010-07-06 16:45:39

SQL Server創

2010-07-12 09:52:24

刪除 SQL Serv

2010-06-02 13:33:19

MySQL 查詢緩存

2010-04-21 13:31:11

Oracle時間

2010-07-22 16:02:29

2010-06-28 12:39:14

SQL Server數

2010-06-30 13:07:17

SQL Server函
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本一区二区高清不卡 | 日韩精品在线看 | 午夜精品久久 | 国产在线看片 | 久久一 | 久草免费在线视频 | 国产乱码精品一区二区三区中文 | 毛片一区二区 | 久久久高清| 久久99精品久久久久久秒播九色 | 久久精品色视频 | 国产精品久久777777 | 免费特黄视频 | 欧洲视频一区二区 | 成人在线观看免费 | 国产一区二区三区四区在线观看 | 精品久久影院 | 亚洲综合色网 | 国产网站在线免费观看 | 国产一级视频免费播放 | 五月天天丁香婷婷在线中 | 黄色在线免费看 | 亚洲日本欧美 | 日韩中文字幕在线视频 | 午夜精品三区 | 亚洲欧洲色视频 | 国产精品美女久久久久久免费 | 毛片片| 一区二区三区在线免费观看 | 国产一区二区三区精品久久久 | 波波电影院一区二区三区 | 国产欧美日韩综合精品一区二区 | 国产精品毛片在线 | 国产免费一区二区三区最新6 | 国产精品久久久久久久7777 | 国产999精品久久久影片官网 | 成人一区二区三区 | 在线观看免费福利 | 婷婷综合 | 毛片在线免费播放 | 亚洲天堂二区 |