SQLServer中sql for xml path 的用法
阿新 • • 發佈:2017-10-11
left 關註 所有 -- htm tar 測試數據 str lan
閱讀目錄
- 創建測試表&插入測試數據
- for xml path使用
- 普通用法
- 自定義節點名稱
- 將字段作為xml的屬性
我們通常需要獲取一個多行的某個字段拼出的字符串,我們可以使用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>[email protected]</Email> </User> <User> <UserName>李四</UserName> <Email>[email protected]</Email> </User>
自定義節點名稱
給對應的字段取別名即可,如下將UserName取別名為MyUser
SELECT UserName AS MyUser , Email FROM MyTest FOR XML PATH(‘User‘)
運行結果
<User> <MyUser>張三</MyUser> <Email>[email protected]</Email> </User> <User> <MyUser>李四</MyUser> <Email>[email protected]</Email> </User>
將字段作為xml的屬性
可在查詢時 別名用 as '@..' 如‘@value‘
SELECT UserName AS ‘@UserName‘ , Email AS ‘@Email‘ FROM MyTest FOR XML PATH(‘User‘)
運行結果
<User UserName="張三" Email="[email protected]" /> <User UserName="李四" Email="[email protected]" />
行轉列拼接字符串
如將所有姓名拼接為,隔開的字符串
SELECT UserName+‘,‘ FROM MyTest FOR XML PATH(‘‘)
結果
張三,李四,
這裏多了一個,需要再次加工處理一下,通過處理字符串將最後一個逗號去掉即可,可通過SQL中的left函數處理,這裏不做介紹;
具體用法可參考我的另一篇文章----SQL Server 中截取字符串常用的函數
如果,您認為閱讀這篇博客讓您有些收獲,不妨點擊一下右下角的【推薦】。
如果,您希望更容易地發現我的新博客,不妨點擊一下,【關註我】
如果,您希望給我更多的鼓勵,不妨在右側點擊,【打賞一下】
博文是自己對學習成果的總結,學習總結知識-》分析問題-》解決問題。
文中存在的觀點/描述不正確的地方,歡迎指正。
感謝您的閱讀,如果您對我的博客所講述的內容有興趣,請繼續關註我的後續博客,我是yxtic 。
SQLServer中sql for xml path 的用法