0

The goal here is to extract an attribute value from a SQL Server 2008 table column. The column is an XML data type, of course, named 'ProductName'. Here's the sample data

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

And here's my latest attempt at getting to 'My Text'

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

Thanks and good luck!

4

3 回答 3

1
SELECT ProductName.value('(/locale/@en-US)[1]', 'nvarchar(max)') AS ProductName 
FROM MyTable
于 2013-11-01T20:43:15.007 回答
1

尝试这个:

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

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

于 2013-11-01T20:44:20.063 回答
0
declare @xml xml =
'<root>
  <locale en-US="My Text" />
</root>'

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

结果

我的文字

于 2013-11-01T20:43:39.780 回答