我很好奇如何输出' null'在SQL中。在许多情况下,我们需要输出' null'如果目标值不存在。例如,对于此leetcode问题:https://leetcode.com/articles/biggest-single-number/
正确的答案是
select ifnull((select num
from number
group by num
having count(num) = 1
order by num desc
limit 1), null) as num
编写此代码的另一种方法是
select ifnull(num, null) as num
from number
group by num
having count(num) = 1
order by num desc
limit 1
但是,此代码不会输出' null'如果目标数量不存在。我不明白为什么而且很困惑。我想知道是否有人可以对此问题做出详细解释?非常感谢!
答案 0 :(得分:1)
如果表达式为NULL,则IFNULL()函数返回alt_value
如果表达式为NOT NULL
https://www.w3schools.com/sql/func_mysql_ifnull.asp
IFNULL在主要查询之外工作,因为它正在评估整个结果而不是每条记录。