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

创新互联公司专注于企业全网整合营销推广、网站重做改版、定襄网站定制设计、自适应品牌网站建设、H5页面制作、商城网站建设、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为定襄等各大城市提供网站开发制作服务。
语法
NVL(expr1, expr2)参数
|
参数 |
说明 |
|---|---|
|
expr1 |
表达式。数据类型可以是 OceanBase 内建数据类型 中的任何数据类型。 |
|
expr2 |
表达式。数据类型可以是 OceanBase 内建数据类型中的任何数据类型。 |
expr1 和 expr2 必须是相同类型,或者可以隐式转换为相同类型。如果它们不能隐式转换,则 OceanBase 返回错误。隐式转换实现如下:
-
如果
expr1是CHAR、NCHAR、NVARCHAR、VARCHAR2或VARCHAR字符型数据,则 OceanBase 在比较expr1之前将expr2转换为expr1的数据类型,并返回expr1字符集的VARCHAR2。 -
如果
expr1是NUMBER、FLOAT、BINARY_FLOAT或BINARY_DOUBLE数值型数据,则 OceanBase 确定哪个参数具有最高的数字优先级,隐式地将另一个参数转换为该数据类型,并返回该数据类型。
返回类型
如果 expr1、expr2 是 NULL,则返回 NULL。如果 expr1 是 CHAR、NCHAR、NVARCHAR、VARCHAR2 或 VARCHAR 字符型数据,则返回 expr1 字符集的 VARCHAR2。如果 expr1 是 NUMBER、FLOAT、BINARY_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://jxjierui.cn/article/ccccsjj.html


咨询
建站咨询
