我刚注意到以下查询:
select min(null,0);
返回null
,而我期望获得0
...(max
函数相同)
在文档中,如果仅比较空值,则min()将返回null。有人可以解释我如何忽略空值,以便在与空值进行比较时获得真正的价值吗?
答案 0 :(得分:1)
用作聚合函数时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
。
答案 1 :(得分:0)
你可以尝试一下。
write.xlsx2(x = dup_target, file = "Client_Comparison.xlsx",
sheetName = "Duplicates_Target", row.names = FALSE,append=TRUE)