MySql/Oracle Select语句处理缺省值null的方法IFNULL/NVL
2023-06-23
MySql数据库中判断空值的方法是IFNULL,示例:
SELECT IFNULL(post_count,0) as pc FROM `custom_post_stat`;
查询结果如图:
联表查询时,方法一样:
SELECT IFNULL(a1.post_count,0) as pc FROM `custom_post_stat` AS a1;
在Oracle数据库中,处理缺省空值,用NVL和NVL2。它们之间的区别如下:
- NVL函数:
- 语法:NVL(expr1 expr2)
- 功能:如果expr1为NULL,则返回expr2的值;否则返回expr1的值。
- 示例SELECT NVL(salary, 0 FROM employees; 如果salary为空,则返回0;否则返回salary的值。
- NVL函数:
- 语法:NVL2(expr1, expr2, expr3)
- 功能:如果expr1不为NULL,则返回expr2的值;如果expr1为NULL,则返回expr3的值。 -:SELECT NVL2(manager, ‘Yes’, ‘No’) FROM employees; 如果manager_id不为空,则返回’Yes’;否则返回’No’。
总结:
- NV函数用于进行简单的空值替换,无需指定两个不同的返回值,只有一个替代值。
- NVL2函数则更加灵活,在需要根据空值与非空值分别返回两个不同值时使用。
- 使用哪函数取决于你在处理空值时的具体情况和需求。
(版权归cpury.com所有,转载请注明出处。)