我有一个 XQuery 如下
DECLARE @x XML
SELECT @x = '<PartnerEmails>
<Email>[email protected] /cdn-cgi/l/email-protection</Email>
<Email>[email protected] /cdn-cgi/l/email-protection</Email>
</PartnerEmails>'
SELECT @x.query('data(PartnerEmails/Email)').value('.','varchar(100)') AS Val
实际输出:
Val
[email protected] /cdn-cgi/l/email-protection [email protected] /cdn-cgi/l/email-protection
预期输出
[email protected] /cdn-cgi/l/email-protection
[email protected] /cdn-cgi/l/email-protection
即在两个不同的行中。
怎么办呢?
用这个:
SELECT
node.value('.','varchar(100)') AS Val
FROM
@x.nodes('/PartnerEmails/Email') AS PE(Node)
因为你里面有多个节点<PartnerEmails>
,你需要使用.nodes()
函数创建 XML 片段的“内联”表 - 该表中的每一“行”都包含一个<Email>
然后您可以查询该节点(并提取 XML 节点的内容)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)