我有下面的XML:在SQL Server中使用XQuery來解析XML複雜類型
<Feed>
<FeedId>10</FeedId>
<Component>
<Date>2011-10-01</Date>
<Date>2011-10-02</Date>
</Component>
</Feed>
現在,如果可能的話,我想在XML解析到SQL所以它的序列化到以下關係數據:
FeedId Component_Date
10 2011-10-01
10 2011-10-02
但是使用下面的SQL:
DECLARE @XML XML;
DECLARE @XMLNodes XML;
SET @XML = '<Feed><FeedId>10</FeedId><Component><Date>2011-10-01</Date><Date>2011-10-02</Date></Component></Feed>';
SELECT t.a.query('FeedId').value('.', 'INT') AS FeedId
,t.a.query('Component/Date').value('.', 'VARCHAR(80)') AS [Component_Date]
FROM @XML.nodes(' /Feed') AS t(a)
最近我得到的是:
FeedId Component_Date
10 2011-10-012011-10-02
所以日期值出現在同一行,是否有可能實現我想要使用XQuery?
不需要使用第二個節點()。你可以使用''../../ FeedId [1]'**來達到FeedId的值,但是**速度要快很多。 +1 –
非常好,正是我想要的Mikael,謝謝 – Rubans