【发布时间】:2016-04-28 08:04:17
【问题描述】:
为了在 SQL 查询中使用,我需要获取特定 XML 元素的值。 XML 元素由其属性指定。
我的 XML 元素如下所示:
<translations>
<value lang="en-US">example</value>
<value lang="de-DE">Beispiel</value>
</translations>
当我将 lang 指定为“en-US”时,我正在寻找的值将是“example”。
我找到了一种方法来获取这个值,方法是使用 query() 函数,然后使用 value() 函数。
declare @S varchar(max)
set @S =
'<translations>
<value lang="en-US">example</value>
<value lang="de-DE">Beispiel</value>
</translations>'
declare @X xml
set @X = CAST(@S as xml)
select @X.query('/translations/value[@lang="en-US"]').value('.','varchar(max)')
此 select 语句通过使用 query() 和 value() 函数返回值“示例”。但是还有一种更方便的方式来只使用 value() OR query() 吗?
提前谢谢你!
【问题讨论】:
标签: sql sql-server xml tsql xquery-sql