You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server中XML value函数在PostgreSQL的等效写法

PostgreSQL中获取XML值的等效写法

对应SQL Server里CAST(XML AS XML).value('(xpath here)','nvarchar(50)')的写法,PostgreSQL里有两种常用实现方式:

兼容全版本的写法(用xpath()函数)

如果你的XML数据存在字符串类型字段里,得先转成XML类型,再用xpath()提取结果,最后取数组第一个元素转成目标类型:

(xpath('你的xpath表达式', CAST(目标字段 AS XML)))[1]::nvarchar(50)

举个实际例子:SQL Server里要提取根节点下user元素的name属性值,写法是CAST(xml_data AS XML).value('(/root/user/@name)[1]','nvarchar(50)'),到PostgreSQL里就写成:

(xpath('/root/user/@name', CAST(xml_data AS XML)))[1]::nvarchar(50)

注意:xpath()返回的是XML数组,所以要用[1]取第一个匹配项;如果是提取元素文本,记得在xpath末尾加/text(),避免返回带标签的完整节点。

简洁写法(PostgreSQL 12+可用,用xpath_string()函数)

PostgreSQL 12及以后版本提供了xpath_string(),直接返回匹配的字符串,不用处理数组,更省心:

xpath_string(CAST(目标字段 AS XML), '你的xpath表达式')::nvarchar(50)

对应上面的例子:

xpath_string(CAST(xml_data AS XML), '/root/user/@name')::nvarchar(50)

要是你的字段本身就是xml类型(不是字符串),直接用字段名就行,不用额外CAST转换。

内容的提问来源于stack exchange,提问作者Eugine Francis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 22:42:40