成人免费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-06-02 13:33:19

MySQL 查詢緩存

2010-04-21 13:31:11

Oracle時間

2010-04-19 11:37:20

Oracle數據庫

2010-04-09 16:26:53

Oracle join

2010-07-06 16:45:39

SQL Server創

2010-07-12 09:52:24

刪除 SQL Serv

2010-07-21 15:22:07

2010-07-07 11:03:21

SQL Server索

2010-04-12 12:30:44

Oracle 安裝腳本

2010-04-27 09:28:55

綁定變量

2010-06-02 17:46:54

MySQL 查詢緩存
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 最新国产在线 | 国产一级在线视频 | 天天躁日日躁狠狠的躁天龙影院 | 九色国产 | 国产精品3区 | 欧美一级欧美三级在线观看 | 日韩精品国产精品 | 99亚洲国产精品 | 91文字幕巨乱亚洲香蕉 | 欧美在线视频网站 | 午夜电影网站 | 亚洲欧美成人在线 | 成人午夜免费福利视频 | 91麻豆精品国产91久久久久久久久 | 激情影院久久 | 日韩aⅴ视频 | 成人在线播放 | 成人影院在线 | 成人免费小视频 | 一本色道久久综合亚洲精品高清 | 精品一区二区三区在线观看 | 久久小视频 | 一区二区三区在线观看免费视频 | 亚洲h色 | 欧美成人精品 | 天堂精品 | 日韩国产精品一区二区三区 | 黑人精品欧美一区二区蜜桃 | 中文字幕视频在线免费 | 免费午夜视频在线观看 | 国产成人一区 | 福利电影在线 | 国产精品久久久久久久久久免费看 | 九九久久这里只有精品 | 四虎海外 | 精品综合| 亚洲视频精品 | 婷婷久久综合 | 欧美精品在线观看 | 国产成人精品一区二区三区网站观看 | 日韩在线资源 |