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

时间:2015-02-25 00:32:32

标签: sql xml sql-server-2012

我已经看到很多解决这个问题的问题,但不幸的是我仍然无法使其发挥作用。

以下是名为RentalValueAmount的表中名为Units的XML列中包含的XML数据示例:

<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

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

1 个答案:

答案 0 :(得分:1)

试试这个:

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

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