gpt4 book ai didi

ruby-on-rails - 需要一个在非空值之后返回空值的 postgresql 查询

转载 作者:行者123 更新时间:2023-11-29 11:39:19 25 4
gpt4 key购买 nike

需要一个 postgresql 查询,它在非空值末尾返回空值,而不考虑升序/降序。

例如:- 我有一列 purchase_price 的值为 1、5、3、0、null、null

然后对于 ORDER BY purchase_price ASC 它应该返回

0
1
3
5
null
null

对于 ORDER BY purchase_price DESC 它应该返回

5
3
1
0
null
null

我需要通用化解决方案,我可以将其应用到 'boolean''float''string''整数', '日期' 数据类型

最佳答案

order by 支持nulls first/last。默认情况下,asc nulls lastdesc nulls first。您可以为每一列覆盖它们:

order by col1 desc nulls last, col2 desc nulls first, etc

关于此的额外说明:根本原因是它们被放置在 btree 索引末尾的空值。在 PostgreSQL 9.0 中,order by col desc nulls last 被优化为将索引扫描一分为二(反向扫描非空行,然后是空行)。在添加它的原始版本中情况并非如此(如果有内存,则为 8.4);后者继续对整个表进行序列扫描,然后进行快速排序)。旧版本根本不支持该功能。因此,除了最新版本的 PostgreSQL 之外,请谨慎使用它。

关于ruby-on-rails - 需要一个在非空值之后返回空值的 postgresql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6067995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com