首页 > 数据库 > > GaussDB 100 类型转换函数N篇上
语法:
NULLIF(expr1, expr2)
功能:
如果expr1等于expr2,则返回NULL。
如果expr1不等于expr2, 则返回expr1。
说明:
expr1不能为NULL,否则校验报错。
expr1和expr2应该为相同数据类型,否则校验报错。
不支持两个参数同为clob类型或同为blob类型。
示例:
--删除同名表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', 1000.15, 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);
--返回员工编号和工资列表,若工资不为2600.00则显示实际工资,若工资为2600.00则显示空值。
SELECT staff_ID, NULLIF(SALARY, 2600.00) "SALARY" FROM staffS_xian WHERE staff_ID IS NOT NULL ORDER BY staff_ID;
STAFF_ID SALARY
---------------------------------------- ----------------------------------------
198 1000.15
199
200 4400
3 rows fetched.
语法:
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则返回。
SELECT staff_ID, NVL(SALARY,) "SALARY" FROM staffS_xian WHERE staff_ID IS NOT NULL ORDER BY staff_ID;
STAFF_ID SALARY
---------------------------------------- ----------------------------------------
198
199 2600
200 4400
3 rows fetched.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69959250/viewspace-3158636/ ,如需转载,请注明出处,否则将追究法律责任。