sqlserver多行轉一行字符串(解決for xml path 超過2033截斷問題)


1、t-sql:經過測試此方法在數據量較大時候效率特別低。

2、for xml path:此方法效率可以但是需要注意利用stuff函數將生成的xml文件轉換為字符串,否則用sqldatereader或者SqlDataAdapter讀取數據只能讀取2033個字符。
例如:有如下test表有 數據 
Id Name
1  a
2  b
3  c
4  d
當使用:SELECT   ','+Id   FROM  dbo.Test   FOR   XML   PATH (''));  //這樣讀取的數據雖然是1,2,3,4,但是仍然是xml格式,所以當數據超過2033時候,用sqldatereader或者sqldateadapter讀取數據會截斷xml文件。
此時要:SELECT  STUFF(( SELECT  ','+Id   FROM  dbo.Test   FOR   XML   PATH ('')),1,1,'');//利用stuff函數將xml文件轉換為一個字符串字段。就不會截斷。





免責聲明!

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



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