2016-06-13 34 views
0

持つXML要素を選択します。クエリのFirstVersionSourceとDMSEntryuserIDの両方を選択します。は、私は次のような構造を持つ、SQL ServerのXMLストアを持つWHERE句のSQL Serverの

このような何か:ここ

select deal_jacket_xml('/ecHeader/FirstVersionSource') as FirstVersionSource, 
deal_jacket_xml('/ecHeader/DMSEntryUserID') as DMSEntryUserID 
from deal_jacket_xml 
where deal_jacket_xml('NotBlank(/ecHeader/DMSEntryUserID'))=1 
order by [deal_jacket_xml_id] desc 
+0

あなたの質問はほとんど意味がありません。 [xmlデータ型のメソッド](https://msdn.microsoft.com/en-us/library/ms190798.aspx)を最初に読み取る –

答えて

0

は私が思いついたものです。重要なことは、括弧と[1]のインデックス指定です:

select distinct deal_jacket_xml.value('(/eContractingData/ecHeaderData/FirstVersionSource)[1]', 'nvarchar(max)') as FirstVersionSource 
from deal_jacket_xml 
where deal_jacket_xml.value('(/eContractingData/ecHeaderData/FirstVersionSource)[1]', 'nvarchar(max)') is not null 
AND deal_jacket_xml.value('(/eContractingData/ecHeaderData/DMSEntryUserID)[1]', 'nvarchar(max)') is not null 
+0

これはパフォーマンスが向上します。XMLスニペットは構造全体とあなたはこれをあなたのテーブルの多くの行で繰り返すか、または繰り返しの多いノードを持つXMLを持っていて、それらのいくつかを選ぶ必要がありますか? – Shnugo

+0

XML構造は巨大です。スニペットはちょっとした部分です。行ごとに巨大なXML構造があります。 –

関連する問題