暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

华为GaussDB T IFNULL、NVL空值处理

原创 章芋文 2019-09-22
5615

IFNULL

语法:

IFNULL(expr1, expr2)

功能:如果expr1不为NULL,则返回expr1;如果expr1是NULL,则返回expr2。

示例:

--删除同名表staffS_xian。
DROP TABLE IF EXISTS staffS_xian;
--创建表staffS_xian。
CREATE TABLE  staffS_xian
(
  staff_ID       NUMBER(6) not null,
  NAME           VARCHAR2(20),
  EMAIL          VARCHAR2(25),
  PHONE_NUMBER   VARCHAR2(20),
  HIRE_DATE      DATE,
  employment_ID  VARCHAR2(10),
  SALARY         NUMBER(8,2),
  MANAGER_ID     NUMBER(6),
  section_ID     NUMBER(4)
);
--向表staffS_xian中加入记录1。
INSERT INTO staffS_xian (staff_ID, NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, employment_ID, SALARY, MANAGER_ID, section_ID)
values (198, '王莹', 'wangying@126.com', '18095605632', to_date('21-06-1999', 'dd-mm-yyyy'), 'SH_CLERK', NULL, 124, 50);
--向表staffS_xian中加入记录2。
INSERT INTO  staffS_xian (staff_ID, NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, employment_ID, SALARY, MANAGER_ID, section_ID)
values (199, '何开平', 'hekaipng02@126.com', '18095605532', to_date('13-01-2000', 'dd-mm-yyyy'), 'SH_CLERK', 2600.00, 124, 50);
--向表staffS_xian中加入记录3。
INSERT INTO  staffS_xian (staff_ID, NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, employment_ID, SALARY, MANAGER_ID, section_ID)
values (200, '李瑞', 'lirui03@126.com', '18095565632', to_date('17-09-1987', 'dd-mm-yyyy'), 'AD_ASST', 4400.00, 101, 10);
--返回员工编号和工资列表,工资如果为NULL则返回unknown。
SELECT staff_ID, IFNULL(SALARY, 'unknown') ""SALARY"" FROM staffS_xian WHERE staff_ID IS NOT NULL ORDER BY staff_ID;

STAFF_ID                                 SALARY
---------------------------------------- ----------------------------------------------------
198                                      unknown
199                                      2600
200                                      4400

3 rows fetched.



NVL

语法:

NVL(expr1, expr2)

功能:如果expr1不为NULL,则返回expr1;如果expr1是NULL,则返回expr2。

示例:

--删除同名表staffS_xian。
DROP TABLE IF EXISTS staffS_xian;
--创建表staffS_xian。
CREATE TABLE  staffS_xian
(
  staff_ID       NUMBER(6) not null,
  NAME           VARCHAR2(20),
  EMAIL          VARCHAR2(25),
  PHONE_NUMBER   VARCHAR2(20),
  HIRE_DATE      DATE,
  employment_ID  VARCHAR2(10),
  SALARY         NUMBER(8,2),
  MANAGER_ID     NUMBER(6),
  section_ID     NUMBER(4)
);
--向表staffS_xian中加入记录1。
INSERT INTO staffS_xian (staff_ID, NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, employment_ID, SALARY, MANAGER_ID, section_ID)
values (198, '王莹', 'wangying@126.com', '18095605632', to_date('21-06-1999', 'dd-mm-yyyy'), 'SH_CLERK', NULL, 124, 50);
--向表staffS_xian中加入记录2。
INSERT INTO  staffS_xian (staff_ID, NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, employment_ID, SALARY, MANAGER_ID, section_ID)
values (199, '何开平', 'hekaipng02@126.com', '18095605532', to_date('13-01-2000', 'dd-mm-yyyy'), 'SH_CLERK', 2600.00, 124, 50);
--向表staffS_xian中加入记录3。
INSERT INTO  staffS_xian (staff_ID, NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, employment_ID, SALARY, MANAGER_ID, section_ID)
values (200, '李瑞', 'lirui03@126.com', '18095565632', to_date('17-09-1987', 'dd-mm-yyyy'), 'AD_ASST', 4400.00, 101, 10);

--返回员工编号和工资列表,工资如果为NULL则返回0。
SELECT staff_ID, NVL(SALARY,0) ""SALARY"" FROM staffS_xian WHERE staff_ID IS NOT NULL ORDER BY staff_ID;

STAFF_ID                                 SALARY
---------------------------------------- ----------------------------------------
198                                      0
199                                      2600
200                                      4400

3 rows fetched.
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论