原数据结构

多条记录合并成一条记录

需要的结果

多条记录合并成一条记录

 

SQL语句

 

 1多条记录合并成一条记录
 2多条记录合并成一条记录if exists(select * from sysobjects where id = object_id('Page'and type='u' )
 3多条记录合并成一条记录    drop table Page
 4多条记录合并成一条记录
 5多条记录合并成一条记录create table Page
 6多条记录合并成一条记录(
 7多条记录合并成一条记录    PageID int primary key,
 8多条记录合并成一条记录    PageText nvarchar(4000)
 9多条记录合并成一条记录)
10多条记录合并成一条记录
11多条记录合并成一条记录declare @bookid nvarchar(10)
12多条记录合并成一条记录declare @sql nvarchar(4000)
13多条记录合并成一条记录
14多条记录合并成一条记录
15多条记录合并成一条记录--定义游标
16多条记录合并成一条记录DECLARE Book_Cursor CURSOR FOR SELECT BookID From BookInfo order by bookid
17多条记录合并成一条记录open Book_Cursor
18多条记录合并成一条记录FETCH NEXT FROM Book_Cursor Into @bookid
19多条记录合并成一条记录WHILE @@FETCH_STATUS = 0
20多条记录合并成一条记录BEGIN
21多条记录合并成一条记录--print @bookid
22多条记录合并成一条记录
23多条记录合并成一条记录set @sql='
24多条记录合并成一条记录insert into Page
25多条记录合并成一条记录SELECT *
26多条记录合并成一条记录FROM(
27多条记录合并成一条记录    SELECT DISTINCT pageid FROM Areainfo_'+@bookid+'
28多条记录合并成一条记录)AA
29多条记录合并成一条记录OUTER APPLY(
30多条记录合并成一条记录    SELECT 
31多条记录合并成一条记录        [values]= STUFF(REPLACE(REPLACE(
32多条记录合并成一条记录            (
33多条记录合并成一条记录SELECT [Text] = 
34多条记录合并成一条记录CASE 
35多条记录合并成一条记录WHEN [TextReplace] IS NOT NULL THEN [TextReplace]
36多条记录合并成一条记录WHEN [TextReceive] IS NOT NULL THEN [TextReceive]
37多条记录合并成一条记录WHEN [TextProfessor] IS NOT NULL THEN [TextProfessor]
38多条记录合并成一条记录WHEN [TextLandscape] IS NOT NULL THEN [TextLandscape]
39多条记录合并成一条记录WHEN [TextPortrait] IS NOT NULL THEN [TextPortrait]
40多条记录合并成一条记录WHEN [TextRecension] IS NOT NULL THEN [TextRecension]
41多条记录合并成一条记录WHEN [TextSecond] IS NOT NULL THEN [TextSecond]
42多条记录合并成一条记录ELSE [TextFirst]
43多条记录合并成一条记录END 
44多条记录合并成一条记录FROM textinfo_'+@bookid+' as t left join Areainfo_'+@bookid+' as a ON a.areaid=t.areaid WHERE pageid = AA.pageid order by pageid
45多条记录合并成一条记录               FOR XML AUTO
46多条记录合并成一条记录            ),''<t Text="''''''), ''"/>''''''), 1, 1,'''')
47多条记录合并成一条记录)N'
48多条记录合并成一条记录--print @sql
49多条记录合并成一条记录exec(@sql)
50多条记录合并成一条记录FETCH NEXT FROM Book_Cursor Into @bookid
51多条记录合并成一条记录end
52多条记录合并成一条记录close Book_Cursor
53多条记录合并成一条记录deallocate Book_Cursor
54多条记录合并成一条记录
55多条记录合并成一条记录select * from page

 

 

 

相关文章: