gpt4 book ai didi

postgresql - 如果在 x 列中检测到任何 Null 值,我将如何告诉 postgres 扫描并停止?

转载 作者:行者123 更新时间:2023-11-29 12:38:07 26 4
gpt4 key购买 nike

我有一个包含几百万行的表。我可以使用什么查询来扫描并查看它们中是否有 X 列的空值,然后在 postgresql 中检测到空值时停止?

最佳答案

您正在以程序而非关系的方式思考:您不会“扫描”任何东西; DBMS 可能会在内部扫描数据,但这是为了它进行优化。

根据您想要的结果重新表述,问题更像是这样:“检查一列中是否至少有一个 NULL 的最有效方法是什么?”

对于这个问题,我的回答是:

SELECT true AS null_detected FROM some_table WHERE column_x IS NULL LIMIT 1;

这将返回一行 true如果至少有一个 NULL在列中,如果没有 NULL,则没有行完全没有。您也可以使用它,但我怀疑 Postgres 足够聪明,可以在两种情况下执行大致相同的“查询计划”:

SELECT true AS null_detected WHERE EXISTS (SELECT 1 FROM some_table WHERE column_x IS NULL);

无论哪种方式,最大的性能因素将是 column_x 上是否有索引。 ;没有它,Postgres 将不得不按照您的设想扫描表格的每一行。不过,有了索引,它应该能够查看索引并或多或少立即得出答案。

关于postgresql - 如果在 x 列中检测到任何 Null 值,我将如何告诉 postgres 扫描并停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18679356/

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