gpt4 book ai didi

sqlite - SQLite忽略min函数的空值

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

我只是注意到以下查询:

select min(null,0);

返回null而我期望得到0 ...(与max函数相同)

在文档中说,如果仅比较空值,min()将返回空值。有人可以解释一下与空值比较时如何忽略空值以获得真实值吗?

最佳答案

用作聚合函数的MIN与用作标量函数的MIN有区别。 MIN作为聚合函数肯定会忽略NULL值(大多数聚合函数也是如此)。这意味着下面的列的最小值是3:

col
NULL
3
NULL


但是,SQLite也提供 MIN作为标量函数。在这里忽略 NULL值的一种方法是将这些空值合并为最大可能的整数值 9223372036854775807,例如

SELECT MIN(COALESCE(col1, 9223372036854775807),
COALESCE(col2, 9223372036854775807),
COALESCE(col3, 9223372036854775807)) AS min_value
FROM yourTable;


在这里,如果值是 NULL,那么我们将其替换为非常大的值,然后将其忽略为最小数字。如果可能所有列都为 NULL,则可以使用 MIN表达式将上述调用包装到 CASE

关于sqlite - SQLite忽略min函数的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48619847/

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