你的位置:首页 > 数据库

[数据库]SQL Server 2008 R2——使用FOR XML PATH实现多条信息按指定格式在一行显示


=================================版权声明=================================

版权声明:原创文章 谢绝转载 

请通过右侧公告中的“联系邮箱(wlsandwho@foxmail.com)”联系我

勿用于学术性引用。

勿用于商业出版、商业印刷、商业引用以及其他商业用途。                   

 

本文不定期修正完善。

本文链接:http://www.cnblogs.com/wlsandwho/p/5039358.html

耻辱墙:http://www.cnblogs.com/wlsandwho/p/4206472.html

=======================================================================

没啥说的,鄙视那些无视版权随意抓取博文的爬虫小网站,祝你们早升极乐。

=======================================================================

直接上问题

首先,事主的提问风格我还是很喜欢的,一目了然。

但是,就实际问题来讲,是不是2条就4列?如果有100条,岂不是炸了?

所以,实际上事主应该是想要一个水平显示的效果,而不是一定要有很多列。

不用说我是不是瞎猜的,我就是瞎猜的。哈哈哈。

上代码。

=======================================================================

 1 --by wls 20151211 2 --网络代码有风险 3 --复制粘贴须谨慎 4 USE tempdb 5 GO 6  7 IF OBJECT_ID (N't_TestbyWLS', N'U') IS NOT NULL 8 DROP TABLE t_TestbyWLS; 9 GO10 11 CREATE TABLE t_TestbyWLS(Author NVARCHAR(9),Caption NVARCHAR(50),ReadCount INTEGER)12 GO13 14 INSERT INTO t_TestbyWLS VALUES('WLS','Hello1',100)15 INSERT INTO t_TestbyWLS VALUES('WLS','Hello2',100)16 INSERT INTO t_TestbyWLS VALUES('thbytwo','Hello2',200)17 INSERT INTO t_TestbyWLS VALUES('thbytwo','Hello1',220)18 INSERT INTO t_TestbyWLS VALUES('wlsandwho','Hello1',220)19 GO20 21 SELECT * FROM t_TestbyWLS22 GO23 24 WITH TempCRC25 AS26 (27 SELECT Author,caption+' '+CAST(readcount AS NVARCHAR(20)) AS CRC FROM t_TestbyWLS28 )29 ,Temp30 AS31 (32 SELECT Author,(SELECT CRC+',' FROM TempCRC a WHERE a.author=b.author FOR '') ) AS CRCFROM TempCRC B GROUP BY author 33 )34 SELECT author,LEFT(crcLEN(crc-1) AS NewCRCFROM Temp35 GO

=======================================================================

千万不要吐槽我的第二个CTE,那是没办法的事情。写了这么多SQL典型例子,大家见我哪次用子查询了?真是迫不得已。

=======================================================================

(友情支持请扫描这个)

微信扫描上方二维码捐赠