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

为什么我的XQuery返回空序列而不是预期的结果5?

问题原因

你使用的是XQuery语法,该语言的算术运算规则明确规定:任意算术运算符的操作数中只要存在空序列(),整个表达式的计算结果就直接返回空序列,这是规范定义的标准行为,不是运行异常。
空序列在XQuery中不等同于0、也不等同于Null,它的语义是「不存在任何值」,因此无法参与常规数值运算,不会被自动转换为0参与计算。

解决方案

如果需要把空序列按照0处理得到预期的5,可以用以下两种常见写法:

方法1:使用sum()函数聚合所有需要相加的值

sum()函数会自动忽略空序列,对所有传入的数值求和:

let $num := 5
let $num1 := ()
let $add := sum(($num, $num1))
return $add

方法2:显式判断空序列做兜底转换

用empty()函数判断操作数是否为空,手动给空序列兜底为0:

let $num := 5
let $num1 := ()
let $add := $num + (if (empty($num1)) then 0 else $num1)
return $add

内容的提问来源于stack exchange,提问作者Akbar aLI

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:45:02