在Oracle中,NVL函数的作用是将一个表达式或列的值转换为指定的替代值(如果原始值为 NULL)。它的作用是处理 NULL 值并提供一个默认值,同样也可以在需要返回NULL值时使用,即将默认值设为NULL。
最基本的用法:
NVL(expr1, expr2)
其中,expr1 是要检查是否为 NULL 的表达式或列,expr2 是在 expr1 为 NULL 时要返回的替代值。
NVL 函数的工作原理如下:
如果 expr1 不为 NULL,则 NVL 函数返回 expr1 的值。
如果 expr1 为 NULL,则 NVL 函数返回 expr2 的值。
leetcode例题619:只出现一次的最大数字
https://leetcode.cn/problems/biggest-single-number/
需要将分组之后的数据进行筛选取值,如果直接使用NVL(num,null)时,当分组后的数据为空时,这时NVL(num,null)并不会取到null值,而是’ ',所以这时需要加上一个聚集函数,确保NVL函数的第一个表达式能够取到null值。
select nvl(max(num),null) as "num" from
(select num from MyNumbers group by num having count(*)=1);