在postgres中,有没有办法在不调用order by的情况下获得最后的空值?

问题描述 投票:0回答:1

假设我们有一个查询如下:

从 my_table 中选择 a、b、c ORDER BY 最后为空

有没有办法定义查询

从 my_table 中选择 a、b、c

最后“a”列为空,无需排序?

线上有事:

从 my_table 中选择 a、b、c,其中最后一个为空

基本上我想获得非排序选择的速度,并具有一些排序功能。

postgresql
1个回答
0
投票

最后

a
列为空,无需排序?

UNION ALL
浮现在脑海中:

SELECT a, b, c FROM my_table
WHERE  a IS NOT NULL
UNION ALL
SELECT a, b, c FROM my_table
WHERE  a IS NULL;

如果两个部分之一相对较小,则罕见情况的部分索引将使速度更快。

但是请看:

所以你可能必须确保这两个部分不会混合。

最佳解决方案取决于您的设置和要求的详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.