【发布时间】:2016-02-17 10:26:07
【问题描述】:
我在 SQL Server 数据库的 xml 类型列中有一个 XML 块,如下所示:
<p>
<k>field</k>
<v>user</v>
</p>
<p>
<k>action</k>
<v>delete+set</v>
</p>
<p>
<k>prompt</k>
<v>smith</v>
</p>
我无法控制如何将 XML 放入数据库,我只能查询它。
我想编写一个返回“smith”的 select 语句 - v 标记中的值嵌套在一个元素中,该元素包含一个值为“prompt”的 k 元素。
此列名为“apple”,表为“rule”。
任何帮助将不胜感激。
谢谢!
【问题讨论】:
-
您正在寻找类似 @987654323@ 的内容,但这取决于 XML 中的其他内容。
-
FZE - 返回所有值,我只想要一个。
-
ZLK - 这是整个 XML。我不确定 A.B.方法。我已经更新了我的帖子,提到该字段的名称称为“apple”。
-
ZLK 明白了。 SELECT A.B.value('v[1]','NVARCHAR(255)') FROM [rule] CROSS APPLY xml.nodes('/p') A(B) WHERE A.B.value('k[1]','NVARCHAR (255)') = '提示'
标签: sql-server xml