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

PostgreSQL文本排序异常:JSON字符串空格小于末尾?Bug还是预期行为?

PostgreSQL JSON字段转字符串排序异常问题

普通TEXT类型排序(正常结果)

执行以下SQL查询:

SELECT * 
FROM (
  SELECT 'abc' AS name 
  UNION ALL 
  SELECT 'abc d' AS name
) AS test 
ORDER BY name;

得到预期结果:abc排在abc d之前,即字符串末尾的空格会让排序位置更靠后。

JSON字段转字符串排序(异常结果)

执行以下JSON相关查询:

SELECT * FROM (
  SELECT '{"name":"AbC"}'::JSON AS json
  UNION ALL
  SELECT '{"name":"aBc D"}'::JSON AS json
) AS test ORDER BY LOWER((json -> 'name')::TEXT);

结果与预期相反:aBc D对应的记录排在AbC之前,即提取出的带空格的字符串排序反而更靠前。

测试背景与诉求

多次测试普通TEXT类型的排序及LOWER()处理均表现正常,仅在JSON字段转字符串后排序出现该异常。现寻求PostgreSQL官方文档相关说明,或确认该现象是否为Bug。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 14:20:31