提问人:user2184523 提问时间:7/13/2023 更新时间:7/13/2023 访问量:15
特定 xpath 的 Sql 语句
Sql Statement for a particular xpath
问:
我有一个 XPath 语句,可以很好地处理我的 xml。
//PaymentProperty[Name='PaymentReference']/StoredStringValue
当我将此 xml 存储在 mytable.xmlField 中时,有没有办法从 SQL 中获取此值? 我试过了
select x.xml.query('//PaymentProperty[@Name=PaymentReference]/StoredStringValue') from (select cast(xmlField as xml) as xml from mytable
但我想 XQuery 喜欢不同的语法?这是一个非常动态的 xml,所以我需要知道的是,如果 parentNode PaymentProperty 中的任何位置有针对标签的“PaymentReference”值,然后针对标签 StoredStringValue 获取值。有什么办法可以从SQL中实现这一点吗?
感谢所有的帮助
答:
0赞
user2184523
7/13/2023
#1
ChatGPT来救援
SELECT B.value('(//PaymentProperty[Name=“PaymentReference”]/StoredStringValue)[1]', 'nvarchar(max)') 作为结果 从 在此 SQL 查询中,“B.value()”函数用于从表“A”中的 XML 列“B”中提取 XPath 表达式的值。XPath 表达式用括号括起来,并作为“value()”函数的第一个参数提供。第二个参数指定结果的数据类型,在本例中为“nvarchar(max)”。
请注意,如果存在多个匹配项,则 XPath 表达式末尾的 [1] 仅用于检索第一个匹配节点。如果要检索所有匹配的节点,可以从查询中删除 [1] 部分。
请确保将 SQL 数据库中的“A”替换为实际表名,将“B”替换为列名。
评论