绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
GaussDB 100 类型转换函数I篇
2020-03-04 14:46:53

IF

语法:

IF(cond,exp1,exp2)

功能:计算条件cond,如果条件为真,则返回exp1,否则返回exp2。

示例:

返回员工编号和工资列表,工资如果为NULL则返回secret。
--删除同名表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);
--向表staffS_xian中新增记录4
INSERT INTO staffS_xian (staff_ID, NAME, EMAIL, PHONE_NUMBER, HIRE_DATE, employment_ID, SALARY, MANAGER_ID, section_ID)
values (206, '李锐云', 'liruiyun03@126.com', '18095565892', to_date('17-09-1988', 'dd-mm-yyyy'), 'AD_ASST', 3900.00, 101, 10);
--返回员工编号和工资列表,工资如果为NULL则返回secret。
SELECT staff_ID, IF(SALARY < 4000, SALARY, 'secret') "SALARY" FROM staffS_xian WHERE staff_ID IS NOT NULL ORDER BY staff_ID;

STAFF_ID SALARY
---------------------------------------- ----------------------------------------------------
198 secret
199 2600
200 secret
206 3900

4 rows fetched.

IFNULL

语法:

IFNULL(expr1, expr2)

功能:

  • 如果expr1不为NULL,则返回expr1。

  • 如果expr1等于NULL,则返回expr2。

示例:

返回员工编号和工资列表,工资如果为NULL则返回unknown。
--删除同名表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.


分享好友

分享这个小栈给你的朋友们,一起进步吧。

GaussDB_数据库
创建时间:2020-01-06 16:21:44
华为GaussDB数据库小栈
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • GaussDB_数据库
    专家
戳我,来吐槽~