天天看點

XQuery 學習入門示例

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)

結果為:

作者

張三