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 GO
10 
11 CREATE TABLE t_TestbyWLS(Author NVARCHAR(9),Caption NVARCHAR(50),ReadCount INTEGER)
12 GO
13 
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 GO
20 
21 SELECT * FROM t_TestbyWLS
22 GO
23 
24 WITH TempCRC
25 AS
26 (
27 SELECT Author,caption+' '+CAST(readcount AS NVARCHAR(20)) AS CRC FROM t_TestbyWLS
28 )
29 ,TempXML
30 AS
31 (
32 SELECT Author,(SELECT CRC+',' FROM TempCRC a WHERE a.author=b.author FOR XML PATH('') ) AS CRCXML FROM TempCRC B GROUP BY author 
33 )
34 SELECT author,LEFT(crcxml,LEN(crcxml)-1) AS NewCRCXML FROM TempXML
35 GO

運行結果。

執行計划。

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

千萬不要吐槽我的第二個CTE,那是沒辦法的事情。寫了這么多SQL典型例子,大家見我哪次用子查詢了?真是迫不得已。

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

(友情支持請掃描這個)

微信掃描上方二維碼捐贈

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM