0

ここでの目標は、SQL Server 2008 テーブルの列から属性値を抽出することです。列はもちろん、'ProductName' という名前の XML データ型です。サンプルデータはこちら

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

そして、これが「My Text」に到達するための私の最新の試みです

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

ありがとう、そして幸運を!

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>要素と一致し、その部分はその XML 要素の属性@en-USと一致します。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 に答える