【发布时间】:2019-06-05 00:47:30
【问题描述】:
我希望查询返回两列中最少的一个。但是,如果 col1 和 col2 都为 NULL,则返回 NULL。我已经尝试过 coalesce() 和 nvl() 但是当 col1 和 col2 都为 NULL 时,两者都不处理这种情况。
对于 col1 = 3 和 col = 2:
select least(coalesce(3, 1000000), coalesce(2, 1000000))
这行得通,输出为 2。
这也适用于 col1 = 3 和 col2 = NULL:
select least(coalesce(3, 1000000), coalesce(NULL, 1000000))
但是,当 col1 = NULL 和 col2 = NULL 时,这不起作用
select least(coalesce(null, 1000000), coalesce(null, 1000000))
这给了我 1000000 而不是 null。 我该如何解释这种情况?
【问题讨论】:
-
我真的不明白这个问题,如果两个参数都为空,至少会返回空。您似乎在这里比较的不仅仅是两列。能否提供样表、样例数据和预期结果?
-
我同意 Jeremy 你的问题令人困惑,因为:
least(null, null)将返回null
标签: sql postgresql null