一尘不染

SQL:如何获取XML数据类型中的属性的值?

sql

我的数据库中有以下xml:

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

我现在使用的是这样的东西:但是仍然必须找到属性值。

 SELECT convert(xml,m.Body).query('/Email/Account')
 FROM Mail

如何language在使用SQL的select语句中获取属性的值?


阅读 282

收藏
2021-05-05

共1个答案

一尘不染

使用XQuery:

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

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

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
2021-05-05