Huiselect'Hui'forxmlpath('root')結(jié)果:Hui

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

SQL SERVER中XML查詢(xún):FOR XML指定PATH

系統(tǒng) 2483 0

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ù)


PATH('參數(shù)'),參數(shù)是用來(lái)重命名ROW的,ROW是默認(rèn)生成的名稱(chēng)。
select 'Hui' for xml path ?結(jié)果:<row>Hui</row>
select 'Hui' for xml path ('root') 結(jié)果:<root>Hui</root>


不帶名稱(chēng)的列


select 'Hui Li' for xml path
結(jié)果:
<row>Hui Li</row>


具有名稱(chēng)的列


列名以 @ 符號(hào)開(kāi)頭


select 'Hui Li' as [@name] for xml path ?結(jié)果:<row name="Hui Li" />


列名不以 @ 符號(hào)開(kāi)頭



select 'Hui Li' as [name] for xml path ?結(jié)果:
<row>
? <name>Hui Li</name>
</row>


列名不以 @ 符號(hào)開(kāi)頭并包括斜杠標(biāo)記 (/)


select 'Hui' as [name/first] for xml path ?結(jié)果:
<row>
? <name>
? ? <first>Hui</first>
? </name>
</row>



多個(gè)列共享同一前綴



select 'Hui' as [name/first],'Li' as [name/last] for xml path ?結(jié)果:
<row>
? <name>
? ? <first>Hui</first>
? ? <last>Li</last>
? </name>
</row>
注意大寫(xiě)和小寫(xiě)敏感。


共享同一前綴多列被打斷順序


select 'Hui' as [name/first],'Chicago' as [address],'Li' as [name/last] for xml path ?結(jié)果:
<row>
? <name>
? ? <first>Hui</first>
? </name>
? <address>Chicago</address>
? <name>
? ? <last>Li</last>
? </name>
</row>


稱(chēng)指定為通配符的列


select 'Hui' as [*],' ' as [*], 'Li' as [*] for xml path
select 'Hui',' ', 'Li' for xml path
上面兩個(gè)SQL語(yǔ)句運(yùn)行結(jié)果同樣:
<row>Hui Li</row>
假設(shè)是XML類(lèi)型,則作為一個(gè)子元素插入XML樹(shù)。
declare @table table(name varchar(50), xmlcontent xml)
insert into @table select 'Hui', '<root><person></person></root>'
select name,xmlcontent as [*] from @table for xml path
結(jié)果:
<row>
? <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 值。


演示樣例:
select 'Hui' as [first/text()],'Li' as [last/node()],'Hui Li' as [fullname/comment()],'test' as "processing-instruction(PI)" for xml path
結(jié)果:
<row>
? <first>Hui</first>
? <last>Li</last>
? <fullname>
? ? <!--Hui Li-->
? </fullname>
? <?PI test?>
</row>


帶有指定為 data() 的路徑的列名


假設(shè)被指定為列名的路徑為 data(),則在生成的 XML 中,該值將被作為一個(gè)原子值來(lái)處理。 假設(shè)序列化中的下一項(xiàng)也是一個(gè)原子值,則將向 XML 中加入一個(gè)空格字符。 這在創(chuàng)建列表類(lèi)型化元素值和屬性值時(shí)非常實(shí)用。
with T
as
(
select 11 as id
union all
select 22
union all
select 33
)
select id as [data()] from T for xml path ('')
結(jié)果:
11 22 33
這里的('')能夠理解為把XML的根元素名稱(chēng)設(shè)為空。

NULL值列


select 'hui' as [name],null as [address] for xml path
結(jié)果:
<row>
? <name>hui</name>
</row>
沒(méi)有不論什么相關(guān)address的內(nèi)容,指定ELEMENTS XSINIL后:
select 'hui' as [name],null as [address] for xml path ,ELEMENTS XSINIL
結(jié)果:
<row xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
? <name>hui</name>
? <address xsi:nil="true" />
</row>


PATH 模式中的命名空間支持


WITH XMLNAMESPACES(N'樂(lè)可樂(lè)可的部落格' as a)
SELECT 1 as 'a:b'
FOR XML PATH
結(jié)果:
<row xmlns:a="樂(lè)可樂(lè)可的部落格">
? <a:b>1</a:b>
</row>

總結(jié)


以上對(duì)指定EXPLICIT的XML查詢(xún)就介紹完了。到此為止,SQL SERVER中的 指定RAW,AUTO,EXPLICIT,PATH XML查詢(xún)就所有介紹完成。

  1. SQL SERVER中XML查詢(xún):FOR XML指定RAW
  2. SQL SERVER中XML查詢(xún):FOR XML指定AUTO
  3. SQL SERVER中XML查詢(xún):FOR XML指定EXPLICIT
  4. SQL SERVER中XML查詢(xún):FOR XML指定PATH
  5. 關(guān)于XML類(lèi)型,請(qǐng)參考: http://blog.csdn.net/leewhoee/article/details/8571286
  6. 關(guān)于XML索引,請(qǐng)參考: http://blog.csdn.net/leewhoee/article/details/8579743



SQL SERVER中XML查詢(xún):FOR XML指定PATH


更多文章、技術(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ì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 香蕉视频在线观看www | 新久草在线 | 精品视频一区二区三区免费 | 国产毛片视频 | 曰曰鲁夜夜免费播放视频 | 91在线免费公开视频 | 97国产在线观看 | 高清国产一区 | www.不卡视频 | 亚洲狠狠婷婷综合久久久久图片 | 四虎影院2022 | 国产成人免费在线视频 | 亚洲精品14p | 国内精品免费久久影院 | 国产精品福利一区二区 | 毛片看看| 9999热视频| 欧美一级第一免费高清 | 久久久久久人精品免费费看 | 国产亚洲区| 亚洲最大视频网站 | 思思久久这里只精品99re66 | 久久国产精品免费专区 | 国产一区二区三区久久 | 一级毛片视频 | 四虎4hu永久免费视频大全 | 在线激情网址 | 欧美专区一区二区三区 | 亚洲欧美日产综合一区二区三区 | 四虎影院永久在线 | 咪咪爱在线观看 | 亚洲国产精品a一区二区三区 | 欧美二区三区 | 尹人香蕉网在线观看视频 | 超91精品手机国产在线 | 激情都市久久爱 | 97精品国产高清久久久久蜜芽 | 福利一区在线观看 | jizz中国人| 日本三级一区 | 欧美高清免费精品国产自 |