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

PostgreSQL中GREATEST与split_part组合使用不符合预期问题

问题原因及解决办法
  • 核心问题是split_part提取的字符串带有前导空格:split_part('abc | 1 | 5', '|', 3)返回的实际是' 5'(数字5前面有空格)。字符串比较是按ASCII码顺序进行的,空格的ASCII码(32)小于'0'的ASCII码(48),所以' 5'在字符串层面比'0'小,GREATEST函数自然返回'0'。
  • 解决方式:给split_part的结果添加去空格处理,比如使用trim()函数:
SELECT GREATEST(trim(split_part('abc | 1 | 5', '|', 3)), '0');

执行该查询就能得到预期的'5'。如果需要数值类型的结果,还可以进一步转换为整数:

SELECT GREATEST(trim(split_part('abc | 1 | 5', '|', 3))::int, 0);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 00:54:31