SQLServer中sql for xml path 的用法


 

 

我們通常需要獲取一個多行的某個字段拼出的字符串,我們可以使用for xml path進行處理;下面將介紹for xml path的具體用法;

創建測試表&插入測試數據

在數據庫中新增測試表

CREATE TABLE MyTest(
  UserName VARCHAR(50),
  Email VARCHAR(100)
)

插入測試數據

 View Code

數據庫有如下兩條數據

 

for xml path使用

普通用法

創建根節點為user的xml

SELECT UserName ,
Email FROM MyTest FOR XML PATH('User')

運行結果:

復制代碼
<User>
  <UserName>張三</UserName>
  <Email>zhangsan@163.com</Email>
</User>
<User>
  <UserName>李四</UserName>
  <Email>lisi@163.com</Email>
</User>
復制代碼

自定義節點名稱

給對應的字段取別名即可,如下將UserName取別名為MyUser

SELECT UserName AS MyUser ,
Email  FROM MyTest FOR XML PATH('User')

運行結果

復制代碼
<User>
  <MyUser>張三</MyUser>
  <Email>zhangsan@163.com</Email>
</User>
<User>
  <MyUser>李四</MyUser>
  <Email>lisi@163.com</Email>
</User>
復制代碼

將字段作為xml的屬性

 可在查詢時 別名用 as '@..' 如'@value'

SELECT UserName AS '@UserName' ,
Email AS '@Email'  FROM MyTest FOR XML PATH('User')

運行結果

<User UserName="張三" Email="zhangsan@163.com" />
<User UserName="李四" Email="lisi@163.com" />

行轉列拼接字符串

如將所有姓名拼接為,隔開的字符串

SELECT UserName+',' FROM MyTest FOR XML PATH('')

結果

張三,李四,

這里多了一個,需要再次加工處理一下,通過處理字符串將最后一個逗號去掉即可,可通過SQL中的left函數處理,這里不做介紹;

具體用法可參考我的另一篇文章----SQL Server 中截取字符串常用的函數

如果,您認為閱讀這篇博客讓您有些收獲,不妨點擊一下右下角的【推薦】。

如果,您希望更容易地發現我的新博客,不妨點擊一下,【關注我

如果,您希望給我更多的鼓勵,不妨在右側點擊,【打賞一下

博文是自己對學習成果的總結,學習總結知識-》分析問題-》解決問題。

文中存在的觀點/描述不正確的地方,歡迎指正。

感謝您的閱讀,如果您對我的博客所講述的內容有興趣,請繼續關注我的后續博客,我是yxtic 。


免責聲明!

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



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