XQuery选择相关节点

XQuery选择相关节点,xquery,xquery-sql,Xquery,Xquery Sql,给定下面的XML,在SubscriberID为空的情况下,检索SubscriberStatus的合适SQL XQuery是什么?给定XML存储在具有XML数据类型的列中 关键1 订阅状态 活跃的 订阅人 试试这个: 如果$node保存您的xml片段,那么 $node//ObjectEntry[DicValue/ObjectEntry[Key eq“SubscriberStatus”]和DicValue/ObjectEntry[Key eq“SubscriberID”][Value ne”“]

给定下面的XML,在SubscriberID为空的情况下,检索SubscriberStatus的合适SQL XQuery是什么?给定XML存储在具有XML数据类型的列中


关键1
订阅状态
活跃的
订阅人

试试这个:

如果$node保存您的xml片段,那么

$node//ObjectEntry[DicValue/ObjectEntry[Key eq“SubscriberStatus”]和DicValue/ObjectEntry[Key eq“SubscriberID”][Value ne”“]


将返回非空SubscriberID的ObjectEntry父对象这是一个简单的XPath表达式,不需要真正的XQuery。XPath是XQuery的一个子集。假设您需要SubscriberStatus的
元素,您可以按如下方式获得它:

//ObjectEntry/DicValue[ObjectEntry[Key = "SubscriberID"]/Value = ""]/ObjectEntry[Key = "SubscriberStatus"]/Value

这将获取所有具有空SubscriberID的ObjectEntries,然后导航到SubscriberStatus。如果您只需要实际字符串,则可以附加
/string()

谢谢您的建议!不幸的是,他们没有按照我的要求做,但确实帮助我获得了正确的语法。这里有一个有效的解决方案


选择Request.query('//ObjectEntry/DicValue/ObjectEntry[Key=“SubscriberStatus”]/Value')作为SubscriberStatus
从请求日志
哪里
Request.exist('//ObjectEntry/DicValue[ObjectEntry[Key=“SubscriberID”and Value=”“]])=1

没有像SQLXQuery这样的东西。仅仅是一些也支持XQuery的关系数据库。在此上下文中,无论您是在关系数据库中还是在其他地方执行XQuery,都没有区别。-1感谢您没有尝试解决您的问题。