python - 排序时如何处理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
解决方案
如果您只按语法顺序进行替换,您仍然可以使用空值的数字替换并保留原始值。生成的 SQL 如下所示:
SELECT col1, col2, col3
FROM Table
ORDER BY COALESCE(col1, -99)
还找到了一个很好的参考,用于使用空值进行排序。
推荐阅读
- julia - MethodError:尽管导出了函数,但在 Julia 中没有与我的函数名称匹配的方法
- python - 如何在不关闭程序的情况下重新启动游戏
- python - 整理数据后无法拉数据帧头
- firebase-realtime-database - 如何防止对firebase功能的攻击?
- c++ - 错误:没有重载函数“std::getline”的实例与参数列表匹配——参数类型为:(std::istream, char [50])
- javascript - 为什么在更改返回未定义的元素后对javascript数组进行map()操作以将其复制到另一个数组?
- hash - 如何使用 CDN 和负载均衡器进行文件版本控制?
- javascript - 如何使用 react-native-track-player 在特定时间暂停曲目
- python - 记住非递归函数结果
- ios - iOS 应用程序因错误 UISearchDisplayControllerNoLongerSupported 而崩溃