首页 > 解决方案 > 排序时如何处理NULL值?

问题描述

我正在寻找一种在 SQL 中对 DESC 或 ASC 进行排序时最后返回 NULL 值的方法(封装代码在 Python 中),并且可能能够根据某些配置首先重新调整 NULL 值

我尝试用数值替换 NULL 值,但从长远来看,我发现这不是一个合适的解决方案,因为在某些情况下我需要追溯 NULL 的来源,为什么我拥有它并放置一个数值可能会影响工作其他人并给出不准确的结果。

if request.sort:
    sql += " order by " + ', '.join([sort.split(':')[0] + " " + sort.split(':')[1] for sort in request.sort])

return sql

标签: pythonsqlsortingnull

解决方案


如果您只按语法顺序进行替换,您仍然可以使用空值的数字替换并保留原始值。生成的 SQL 如下所示:

SELECT col1, col2, col3
FROM Table
ORDER BY COALESCE(col1, -99)

还找到了一个很好的参考,用于使用空值进行排序。


推荐阅读