SQL SERVER中XML查詢(xún):FOR XML指定PATH
前言
在SQL SERVER中,XML查詢(xún)能夠指定RAW,AUTO,EXPLICIT,PATH。本文用一些實(shí)例介紹SQL SERVER中指定PATH的XML查詢(xún)。
PATH參數(shù)
不帶名稱(chēng)的列
具有名稱(chēng)的列
列名以 @ 符號(hào)開(kāi)頭
列名不以 @ 符號(hào)開(kāi)頭
<row>
? <name>Hui Li</name>
</row>
列名不以 @ 符號(hào)開(kāi)頭并包括斜杠標(biāo)記 (/)
<row>
? <name>
? ? <first>Hui</first>
? </name>
</row>
多個(gè)列共享同一前綴
<row>
? <name>
? ? <first>Hui</first>
? ? <last>Li</last>
? </name>
</row>
共享同一前綴多列被打斷順序
<row>
? <name>
? ? <first>Hui</first>
? </name>
? <address>Chicago</address>
? <name>
? ? <last>Li</last>
? </name>
</row>
稱(chēng)指定為通配符的列
select 'Hui',' ', 'Li' for xml path
insert into @table select 'Hui', '<root><person></person></root>'
select name,xmlcontent as [*] from @table for xml path
? <name>Hui</name>
? <root>
? ? <person />
? </root>
</row>
列名為 XPath 節(jié)點(diǎn)測(cè)試的列
列名 |
行為 |
---|---|
text() |
對(duì)于名為 text() 的列,該列中的字符串值將被加入為文本節(jié)點(diǎn)。 |
comment() |
對(duì)于名為 comment() 的列,該列中的字符串值將被加入為 XML 凝視。 |
node() |
對(duì)于名為 node() 的列,結(jié)果與列名為通配符 (*) 時(shí)同樣。 |
處理指令(名稱(chēng)) |
假設(shè)列名為處理指令,該列中的字符串值將被加入為此處理指令目標(biāo)名稱(chēng)的 PI 值。 |
演示樣例:
? <first>Hui</first>
? <last>Li</last>
? <fullname>
? ? <!--Hui Li-->
? </fullname>
? <?PI test?>
</row>
帶有指定為 data() 的路徑的列名
as
(
select 11 as id
union all
select 22
union all
select 33
)
select id as [data()] from T for xml path ('')
NULL值列
? <name>hui</name>
</row>
? <name>hui</name>
? <address xsi:nil="true" />
</row>
PATH 模式中的命名空間支持
SELECT 1 as 'a:b'
FOR XML PATH
? <a:b>1</a:b>
</row>
總結(jié)
- SQL SERVER中XML查詢(xún):FOR XML指定RAW
-
SQL SERVER中XML查詢(xún):FOR XML指定AUTO
-
SQL SERVER中XML查詢(xún):FOR XML指定EXPLICIT
- SQL SERVER中XML查詢(xún):FOR XML指定PATH
- 關(guān)于XML類(lèi)型,請(qǐng)參考: http://blog.csdn.net/leewhoee/article/details/8571286
- 關(guān)于XML索引,請(qǐng)參考: http://blog.csdn.net/leewhoee/article/details/8579743
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
