首頁 >資料庫 >mysql教程 >如何使用 XQuery 從 SQL 中的 XML 資料中提取屬性值?

如何使用 XQuery 從 SQL 中的 XML 資料中提取屬性值?

DDD
DDD原創
2024-12-25 13:49:14790瀏覽

How to Extract Attribute Values from XML Data in SQL Using XQuery?

SQL:從 XML 資料存取屬性值

在 SQL 中,可以透過 XQuery 存取 XML 資料類型中的屬性值。這使您可以有效率地查詢和操作 XML 資料。

要擷取提供的 XML 中 語言 屬性的值:

<email>
  <account language="en" ... />
</email>

您可以使用下列指令XQuery表達式:

(/email/account/@language)[1]

這個表達式指定:

  • (/email/account):選擇根email 元素中元素中的account 元素。
  • @language:擷取的值語言 屬性。
  • [1](可選):傳回第一個符合值,因為只有一個 語言 屬性。

要在SQL 語句中使用此表達式,您可以將查詢修改為如下所示:

SELECT m.Body.value('(/email/account/@language)[1]', 'nvarchar(max)')
FROM Mail

此查詢將以字串形式傳回語言 屬性的值。

範例:

declare @xml xml =
'<email>
  <account language="en" />
</email>'

select @xml.value('(/email/account/@language)[1]', 'nvarchar(max)')

輸出:

en

您也可以使用XQuery 用於處理表中的 XML數據,如下例所示:

declare @t table (m xml)

insert @t values 
    ('<email><account language="en" /></email>'), 
    ('<email><account language="fr" /></email>')

select m.value('(/email/account/@language)[1]', 'nvarchar(max)')
from @t

輸出:

en
fr

以上是如何使用 XQuery 從 SQL 中的 XML 資料中提取屬性值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn