如何输出' null'在SQL?

时间:2018-04-12 23:02:32

标签: sql null

我很好奇如何输出' 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'如果目标数量不存在。我不明白为什么而且很困惑。我想知道是否有人可以对此问题做出详细解释?非常感谢!

1 个答案:

答案 0 :(得分:1)

如果表达式为NULL,则IFNULL()函数返回alt_value
如果表达式为NOT NULL

,则IFNULL()函数返回表达式

https://www.w3schools.com/sql/func_mysql_ifnull.asp

IFNULL在主要查询之外工作,因为它正在评估整个结果而不是每条记录。