创新互联OceanBase教程:OceanBaseNVL

NVL 函数从两个表达式返回一个非 NULL 值。如果 expr1 与 expr2 的结果皆为 NULL 值,则 NVL 函数返回 NULL

创新互联公司专注于企业全网整合营销推广、网站重做改版、定襄网站定制设计、自适应品牌网站建设、H5页面制作商城网站建设、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为定襄等各大城市提供网站开发制作服务。

语法


NVL(expr1, expr2)

参数

参数

说明

expr1

表达式。数据类型可以是 OceanBase 内建数据类型 中的任何数据类型。

expr2

表达式。数据类型可以是 OceanBase 内建数据类型中的任何数据类型。

expr1 和 expr2 必须是相同类型,或者可以隐式转换为相同类型。如果它们不能隐式转换,则 OceanBase 返回错误。隐式转换实现如下:

  • 如果 expr1 是 CHARNCHARNVARCHARVARCHAR2 或 VARCHAR 字符型数据,则 OceanBase 在比较 expr1 之前将 expr2 转换为 expr1 的数据类型,并返回 expr1 字符集的 VARCHAR2

  • 如果 expr1 是 NUMBERFLOATBINARY_FLOAT 或 BINARY_DOUBLE 数值型数据,则 OceanBase 确定哪个参数具有最高的数字优先级,隐式地将另一个参数转换为该数据类型,并返回该数据类型。

返回类型

如果 expr1expr2 是 NULL,则返回 NULL。如果 expr1 是 CHARNCHARNVARCHARVARCHAR2 或 VARCHAR 字符型数据,则返回 expr1 字符集的 VARCHAR2。如果 expr1 是 NUMBERFLOATBINARY_FLOAT 或 BINARY_DOUBLE 数值型数据,则返回 expr1 中具有最高数字优先级的数据类型。

示例

假设有一张表 EMPLOYEES,给员工姓名列 name 和佣金列 commission_pct 里面插入数据,执行以下语句:


CREATE TABLE EMPLOYEES (name VARCHAR(20),commission_pct float(5));
INSERT INTO EMPLOYEEs VALUES ('Baer', null);
INSERT INTO EMPLOYEEs VALUES ('Bada', null);
INSERT INTO EMPLOYEEs VALUES ('Boll', 0.1);
INSERT INTO EMPLOYEEs VALUES ('Bates', 0.15);
INSERT INTO EMPLOYEEs VALUES ('Eric', null);

查询员工的姓名和佣金,如果员工没有收到佣金,则显示 Not Applicable。执行以下语句:


SELECT name, NVL(TO_CHAR(commission_pct), 'Not Applicable') commission 
FROM employees WHERE name LIKE 'B%' ORDER BY name;

查询结果如下:


+--------------+----------------+
|        NAME  |     COMMISSION |
+--------------+----------------+
|        Baer  | Not Applicable |
+--------------+----------------+
|        Bada  | Not Applicable |
+--------------+----------------+
|        Boll  |             .1 |
+--------------+----------------+
|       Bates  |            .15 |
+--------------+----------------+

分享题目:创新互联OceanBase教程:OceanBaseNVL
浏览地址:http://www.mswzjz.cn/qtweb/news18/309218.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能