在 SQL 中从 XML 数据获取属性值
在数据库表中处理 XML 数据时,可能需要检索以下值XML 内容中的特定属性。一个可能的挑战涉及当数据存储为 XML 数据类型时提取属性的值。
XML 数据格式
考虑存储在数据库中的以下 XML 片段:
<email> <account language="en" ... /> </email>
查询属性Value
要检索“语言”属性的值,您可以在 SQL 语句中使用 XQuery。 XQuery 是一种专门设计用于查询和处理 XML 数据的 XML 查询语言。
XQuery 表达式
以下 XQuery 表达式从XML 数据:
/email/account/@language
SQL查询
将 XQuery 表达式合并到 SQL 查询中,您可以获得属性值,如下所示:
declare @xml xml = '<email> <account language="en" /> </email>' select @xml.value('(/email/account/@language)[1]', 'nvarchar(max)')
其他示例
假设您有一个名为“@t”的表,其中包含多个 XML rows:
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
以上是如何使用 SQL 从 XML 数据中提取属性值?的详细内容。更多信息请关注PHP中文网其他相关文章!