从 SQL Server 2012 中的 XML 列中提取值

Extracting a value from a XML column in SQL Server 2012

我已经看到很多关于这个问题的问题,但不幸的是我还是没能解决这个问题。

这是一个 XML 数据的示例,该数据包含在名为 RentalValueAmount 的 XML 列中,在名为 Units 的 table 中:

<X C="1" I="0">
  <E D="1000Y0M0W0D" P="1" A="36500" />
</X>

我试过了,但没有得到任何值:

select 
    cast(RentalValueAmount as XML).value('data(/X/E)[1]','varchar(10)') as test
from dbo.units

我需要使用查询提取或 return 36500 作为数字,但我无法这样做。显然我不知道 XML,所以非常感谢您的帮助。

试试这个:

select 
cast(RentalValueAmount as XML).value('(/X/E)[1]/@A','varchar(10)') as test
from dbo.units

如果该列已经是 XML 数据类型,则无需再次将其转换为 XML。