通过SQL中的文本内容选择XML中的下一个节点

问题描述 投票:0回答:1

我试图在SQL select语句中查询下面的XML来查找book3的类型。

<Book>
  <Title>Book1</Title>
  <Type>fiction</Type>
  <Cost>9.99</Cost>
</Book>

<Book>
  <Title>Book2</Title>
  <Type>non-fiction</Type>
  <Cost>5.99</Cost>
</Book>

<Book>
  <Title>Book3</Title>
  <Type>fiction</Type>
  <Cost>14.99</Cost>
</Book>

<Book>
  <Title>Book4</Title>
  <Type>non-fiction</Type>
  <Cost>19.99</Cost>
</Book>
...

我试图在我的选择语句中选择标题“book 3”,将其作为文本搜索,然后是类型,即book3,fiction

到目前为止,我可以通过索引执行select选项,但我真的想通过合并某种text ='book 3'语句来找到该节点。

SELECT XML.value('(/ * // Book / Title / node())[3]','nvarchar(max)')作为'结果'

我不熟悉如何做到这一点(我对这种方法很新)

任何人都可以给我一些指导如何做到这一点?或者,如果网上有任何好的资源,我可以阅读(我只能找到关于如何在SQL中执行此操作的部分)

谢谢!

sql xml tsql xpath ssms
1个回答
0
投票

此查询应该有效://Book[Title="Book3"]/Type/text()

提示:此工具可能对测试XPATH查询很有用:http://www.xpathtester.com/xpath

© www.soinside.com 2019 - 2024. All rights reserved.