SQL Server データベース (SQL Server 2012) に次の構造の XML 列があります。
<history>
<status updatedAt="2013-11-30" active="true" />
<status updatedAt="2013-11-15" active="false" />
<status updatedAt="2012-05-10" active="true" />
<status updatedAt="2012-01-30" active="true" />
</history>
新しいステータスは、最上位ノードとして列に追加されます。
指定された日付以下の属性<status>
を持つ最初のノードとそれ以前のすべてのノード (または、属性が指定された日付以下になるまでのすべての > ノード) を含むノードのサブセットを選択する必要があります。updatedAt
<status
updatedAt
XPathを使用してこれを達成するにはどうすればよいですか?
DECLARE @date DATE = '2012-30-10';
SELECT Statuses = Statuses.query('what should be there?')
今のところ、次のクエリで終了しました。
SELECT Statuses = Statuses.query'((/history/pricing[@updatedAt <= sql:variable("@date")])[1])')
最初のノードのみを返しますが、前の兄弟もすべて含めるにはどうすればよいですか?