VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

IFNULL

功能描述

IFNULL(expr1,expr2)函数用于判断函数中expr1是否为NULL,如果为NULL则返回expr2的值,如果不为NULL则返回expr1的值。

注意事项

  • 该功能仅在数据库兼容模式为MySQL时支持(即数据库实例初始化时指定DBCOMPATIBILITY='B')。

  • 支持版本:

    • Vastbase G100 V2.2 Build 10(Patch No.5)及以上补丁版本。

    • Vastbase G100 V2.2 Build 11及以上版本。

语法格式

IFNULL(expr1,expr2)

参数说明

expr

自定义参数值。

示例

示例1:执行SQL语句验证expr1为null和不为NULL返回值。

SELECT ifnull ( '2022-01-30', date '2022-01-31') as a, ifnull (null, date '2022-01-31') as b;

返回结果为:

     a      |     b
------------+------------
 2022-01-30 | 2022-01-31
(1 row)

当expr1不为NULL时返回expr1的值2022-01-30,当expr1为NULL时,返回expr2的值 2022-01-31。

示例2:在SQL语句中调用IFNULL函数。

1、创建测试表并插入数据。

CREATE TABLE contacts(name varchar(20),bizphone text,homephone text);
INSERT INTO contacts VALUES('John','(541) 754-3009',null);
INSERT INTO contacts VALUES('Cindy',null,'(541) 754-3010');
INSERT INTO contacts VALUES('Sue','(541) 754-3012','(541) 754-3013');
INSERT INTO contacts VALUES('Lily',null,null);

2、SELECT语句中调用IFNULL函数。

SELECT name,IFNULL(bizphone,homephone) phone FROM contacts;

返回结果为:

 name  |     phone
-------+----------------
 John  | (541) 754-3009
 Cindy | (541) 754-3010
 Sue   | (541) 754-3012
 Lily  |
(4 rows)
  • John的bziphone不为NULL,homephone为NULL,返回bziphone值。
  • Cindy的bziphone为NULL,homephone不为NULL,返回homephone值。
  • Sue的bziphone和homephone都不为NULL,返回bziphone值。
  • Lily的bziphone和homephone都为NULL,返回为空。

清理环境

DROP TABLE contacts;