2017-02-13 14 views
1

この質問に対する答えは、ネット上で多くの調査を行いました。私は多くのヘルプサイトを見つけましたが、残念ながら結果を得られません(私はXMLを本当に理解していません)。SQL Server 2012クエリXML列

XMLデータを格納するXMLデータ型列(XmlValue)を持つテーブル(CustomField.PersonCustomFieldValue)があります。私は値を抽出する方法が不明です。

列に格納されたデータの例は次のとおりです。

<XmlDataValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><Value xsi:type="xsd:string">NO</Value></XmlDataValue> 

は、どのように値の文字列を抽出していますか?この場合 - 「いいえ」。

ありがとうございました。

+0

チェック[この](http://stackoverflow.com/questions/899313/select-values-from-xml-field-in-sql -server-2008)質問、あなたを助けるかもしれません! –

答えて

0

このようにそれを試してみてください。

DECLARE @xml XML= 
N'<XmlDataValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <Value xsi:type="xsd:string">NO</Value> 
</XmlDataValue>'; 
SELECT @xml.value(N'(/XmlDataValue/Value/text())[1]',N'nvarchar(max)'); 

これは、同じ

SELECT @xml.value(N'(//Value)[1]',N'nvarchar(max)') 

を返します。しかし、あなたは常に可能な限り具体的でなければなりません!テーブルの列のためにこれを呼び出す

は次のようになります。

SELECT XmlValue.value(N'(/XmlDataValue/Value/text())[1]',N'nvarchar(max)') 
FROM YourTable 
+0

多くの多くのありがとうShnugo。もう1つの質問ですが、Select SQL文を別のSelectに入れ子にすることなく、特定の値のみを表示するように列SQLを調整するにはどうすればよいですか? –

+0

@MarkBell SOの1つの原則は次のとおりです。1つの問題 - 1つの質問。 *フォローアップ*の質問は避けてください。いくつかのサンプルコードと予想される出力を配置する新しい質問を開始してください。詳しい情報を提供する必要があります。私はあなたが何かを巣立たせると思っているあなたが持っているものを選んだのか分からない...ハッピーコーディング! – Shnugo

関連する問題