有没有办法在不调用 order by 的情况下最后得到 null ?

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

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

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

有没有办法定义查询

从 my_table 中选择 a、b、c

最后

a
列为空,无需排序?

线上有事:

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

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

sql postgresql null sql-order-by
1个回答
0
投票

回答所提出的问题:

有没有什么方法可以在不调用 order by 的情况下获得最后的空值?

我想到了

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.