我很好奇如何在SQL中输出'null'。在许多情况下,如果目标值不存在,我们需要输出"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
但是,如果目标 num 不存在,则此代码不会输出"null"。我不明白为什么,也很困惑。我想知道是否有人可以对这个问题给出详细的解释?多谢!
如果表达式为 NULL 则 IFNULL(( 函数返回alt_value
IFNULL(( 函数返回表达式,如果表达式不为 NULL
https://www.w3schools.com/sql/func_mysql_ifnull.asp
IFNULL 在主查询之外工作,因为它正在评估整个结果,而不是每个记录。