从SQL Server 2008表中的XML字段中提取简单属性

时间:2013-11-01 20:38:58

标签: sql-server xml sql-server-2008

此处的目标是从SQL Server 2008表列中提取属性值。该列是XML数据类型,当然,名为“ProductName”。这是示例数据

<locale en-US="My Text" />

这是我最近尝试获取“我的文字”

SELECT ProductName.value('/@locale en-US', 'nvarchar(max)')   
AS ProductName FROM MyTable

谢谢,祝你好运!

3 个答案:

答案 0 :(得分:1)

SELECT ProductName.value('(/locale/@en-US)[1]', 'nvarchar(max)') AS ProductName 
FROM MyTable

答案 1 :(得分:1)

试试这个:

SELECT
    ProductName.value('(/locale/@en-US)[1]', 'varchar(50)')
FROM 
    dbo.MyTable

XPath表达式的/locale部分与<locale>元素匹配,而@en-US部分与该XML元素的en-US 属性匹配

答案 2 :(得分:0)

declare @xml xml =
'<root>
  <locale en-US="My Text" />
</root>'

select @xml.value('(/root/locale/@en-US)[1]', 'nvarchar(max)')

<强>结果

我的文字