[英]Get specific XML Child node in SQL Server
I am trying to load XMl to different tables with logical keys in MS SQL Server. 我正在尝试使用MS SQL Server中的逻辑键将XMl加载到不同的表中。 I am stuck as I am getting all child nodes in SQL.
我在SQL中获取所有子节点时陷入困境。
<Books>
<Book>
<Name>Book1</Name>
<Author>abc</Author>
<Stores>
<Name>Amazon</Name>
</Stores>
</Book>
<Book>
<Name>Book2</Name>
<Author>cde</Author>
<Stores>
<Name>Flipkart</Name>
</Stores>
</Book>
</Books>
I want to get result as below. 我想得到如下结果。
BookId Name Author StoreXML
1 Book1 abc <Stores><Name>Amazon</Name></Stores>
2 Book2 cde <Stores><Name>Flipkart</Name></Stores>
Try it like this 像这样尝试
DECLARE @xml XML=
N'<Books>
<Book>
<Name>Book1</Name>
<Author>abc</Author>
<Stores>
<Name>Amazon</Name>
</Stores>
</Book>
<Book>
<Name>Book2</Name>
<Author>cde</Author>
<Stores>
<Name>Flipkart</Name>
</Stores>
</Book>
</Books>';
SELECT ROW_NUMBER() OVER(ORDER BY(SELECT NULL)) AS BookId --there is no id in your XML...
,b.value('(Name/text())[1]','nvarchar(max)') AS BookName
,b.value('(Author/text())[1]','nvarchar(max)') AS Author
,b.query('Stores') AS StoreXML
FROM @xml.nodes('/Books/Book') AS A(b)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.