[开发|数据库] postgresql数据默认数据为null导致排序排序失效

参考文献

默认为null的数据库字段导致SQL排序失效--以pg数据库为例

解决方案

在 PostgreSQL 中,如果你在排序操作中使用 NULL 值,并且希望将 NULL 值排在结果的最后,可以使用 ORDER BY ... NULLS LAST 语法。如果你的排序中存在 NULL 值但排序操作并没有按照预期的方式工作,有几个可能的原因需要检查:

  1. PostgreSQL 版本: 请确保你的 PostgreSQL 版本是 9.3 或更高版本。NULLS LAST 选项在 9.3 版本引入。

  2. 正确的语法: 确保你使用的是正确的语法。下面是一个正确的例子:

sql 复制代码
SELECT name, SUM(number)
FROM test
GROUP BY name
ORDER BY SUM(number) DESC NULLS LAST;
  1. 列的数据类型: 如果你在排序的列中使用了其他数据类型,可能会影响排序的结果。确保排序列的数据类型与你的期望一致。

  2. 其他排序规则: 在某些情况下,排序可能会受到数据库的全局排序规则或者表的默认排序规则的影响。在这种情况下,你可能需要更详细地指定排序规则。

相关推荐
IT枫斗者枫哥26 分钟前
MyBatis一对多分页:LIMIT 20,为什么凑不齐20个订单?
java·数据库
柒和远方26 分钟前
NestJS + TypeORM 学习笔记:语法和类型不绕了
postgresql·orm·nestjs
Y0031 分钟前
PostgreSQL 的锁:为什么你的 ALTER TABLE 会卡住,以及怎么查
数据库·postgresql
灰原喜欢柯南1 小时前
OceanBase 运维管理知识点——OCP 监控、诊断与变更控制
数据库·oceanbase
码农-0041 小时前
Springboot 集成 Ehcache操作数据库显示SQL语句设置
数据库·spring boot·sql
仍然.1 小时前
Redis---事务
数据库·redis
oradh1 小时前
Oracle 执行计划的阅读方法(二叉树结构来理解和阅读)
数据库·oracle·执行计划的阅读方法
SelectDB1 小时前
Doris 向量检索上线踩坑记录:七个排查现场与可直接复制的命令
大数据·数据库·数据分析
数据库小学妹1 小时前
MySQL深分页优化:LIMIT大偏移的根因分析与五种解法对比
数据库·mysql·性能优化
SelectDB1 小时前
一条大查询把集群打挂之后:Apache Doris 稳定性处置与资源隔离速查
大数据·数据库·数据分析