开发者社区> 问答> 正文

SQL ISNULL()、NVL()、IFNULL()和COALESCE函数怎么理解?

已解决

SQL ISNULL()、NVL()、IFNULL()和COALESCE函数怎么理解?

展开
收起
1780169608831412 2021-10-01 08:56:04 737 0
2 条回答
写回答
取消 提交回答
  • 网络规划设计师、敏捷专家、CISP、ITSS服务经理、ACA全科目、ACP4项、ACE、CBP、CDSP、CZTP等。拥有 PRINCE2 Foundation/Practitioner、CCSK、ITIL、ISO27001、PMP等多项国际认证。 专利5+、期刊10+、知识产权师。核心期刊审稿人。
    采纳回答

    您好,提供几个参考范例

    1. SQL Server/MS Access用ISNULL()函数:
    例:SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitOnOrder,0)) FROM Products;
    
    2. Oracle用NVL()函数:
    例:SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitOnOrder,0)) FROM Products;
    
    3. MySQL用IFNULL()函数:
    例:SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitOnOrder,0))  FROM Products;
    
    或者:SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitOnOrder,0)) FROM Products;
    
    
    2021-10-01 09:12:58
    赞同 展开评论 打赏
  • mysql> select * from books;
    +------+--------+------+------+
    | name | author | jb   | id   |
    +------+--------+------+------+
    | ldk  | NULL   | NULL | NULL |
    | xig  | sdds   | NULL | NULL |
    +------+--------+------+------+
    2 rows in set (0.00 sec)
    
    mysql> select * from books where author is  null;
    +------+--------+------+------+
    | name | author | jb   | id   |
    +------+--------+------+------+
    | ldk  | NULL   | NULL | NULL |
    +------+--------+------+------+
    1 row in set (0.00 sec)
    
    mysql> select * from books where author is not null;
    +------+--------+------+------+
    | name | author | jb   | id   |
    +------+--------+------+------+
    | xig  | sdds   | NULL | NULL |
    +------+--------+------+------+
    1 row in set (0.00 sec)
    
    2021-10-16 17:54:21
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载