XQuery 是一種可以查詢結構化或半結構化 XML 資料的語言
若要查詢 xml 類型的變量或列中存儲的 XML 執行個體,
可以使用 xml 資料類型方法
例如:
聲明一個 xml 類型的變量,
然後使用 xml 資料類型的 query() 方法來查詢此變量
DECLARE @x xml
SET @x = '<book><bookAuthor>張三</bookAuthor></book>'
SELECT @x.query('/book/bookAuthor')
将得到
<bookAuthor>張三</bookAuthor>
-------
下表列出了 xml 資料類型方法
query() 方法(xml 資料類型) 此方法用于對 XML 執行個體進行查詢
value() 方法(xml 資料類型) 此方法用于從 XML 執行個體檢索 SQL 類型的值
exist() 方法(xml 資料類型) 此方法用于确定查詢是否傳回非空結果
modify() 方法(xml 資料類型) 此方法用于指定 XML DML 語句以執行更新
nodes() 方法(xml 資料類型) 此方法用于将 XML 拆分成多行
以将 XML 文檔的組成部分傳播到行集中
=============== value() ===
DECLARE @x xml
SET @x = '<book><bookAuthor>張三</bookAuthor></book>'
SELECT @x.value('(/book/bookAuthor)[1]','char(10)')
結果為:
張三
=============== exist()==
DECLARE @x xml
SET @x = '<book><bookAuthor>張三</bookAuthor></book>'
SELECT @x.exist('/book/bookAuthor')
結果為:
1
=============== modify()====
----replace value of
DECLARE @x xml
SET @x = '<book><bookAuthor>張三</bookAuthor></book>'
SET @x.modify('replace value of (/book/bookAuthor/text())[1] with "李四"')
SELECT @x
結果為:
<book><bookAuthor>李四</bookAuthor></book>
----insert
DECLARE @x xml
SET @x = '<book><bookAuthor>張三</bookAuthor></book>'
SET @x.modify('insert <book><bookAuthor>李四</bookAuthor></book>
into (.) ')
SELECT @x
結果為:
<book><bookAuthor>張三</bookAuthor></book>
<book><bookAuthor>李四</bookAuthor></book>
----delete
DECLARE @x xml
SET @x = '<book><bookAuthor>張三</bookAuthor><price>20</price></book>'
SET @x.modify('delete (/book/price) ')
SELECT @x
結果為:
<book><bookAuthor>張三</bookAuthor></book>
============= nodes() ====
DECLARE @x xml
SET @x = '<book><bookAuthor>張三</bookAuthor></book>'
SELECT tableTmp1.columnTmp1.query('./text()') AS '作者'
FROM @x.nodes('/book/bookAuthor') tableTmp1(columnTmp1)
結果為:
作者
張三