codecamp

OceanBase LNNVL

LNNVL 函数判断条件中的一个或者两个操作数是否为 NULL。该函数可以在 WHERE 子句中使用,也可以作为 CASE 表达式中的 WHEN 条件。将条件作为参数,如果条件为 FALSE 或 UNKNOWN,则返回 TRUE;如果条件为 TRUE,则返回 FALSE

语法

LNNVL(condition)

参数

参数

说明

condition

条件

假设 a = 2,b 值为 NULL,下表显示了 LNNVL 函数的返回值。

条件

条件判断结果

LNNVL 返回值

a = 1

FALSE

TRUE

a = 2

TRUE

FALSE

a IS NULL

FALSE

TRUE

b = 1

UNKNOWN

TRUE

b IS NULL

TRUE

FALSE

a = b

UNKNOWN

TRUE

返回类型

返回布尔型 TRUE 或 FALSE

示例

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

CREATE TABLE EMPLOYEES (name VARCHAR(20), commission_pct numeric(10,2));
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 ('Eros', null);
INSERT INTO EMPLOYEEs VALUES ('Girl', 0.25);

您想知道佣金率低于 20% 的员工人数,包括没有收到佣金的员工。执行以下语句,您只能查询实际获得佣金低于 20% 的员工人数:

SELECT COUNT(*) FROM employees WHERE commission_pct < .2;

查询结果如下:

+------------+
|  COUNT(*)  |
+------------+
|        2   |
+------------+

要包括没有收到佣金的另外 3 名员工,您需要使用 LNNVL 函数重写查询。执行以下语句:

SELECT COUNT(*) FROM employees WHERE LNNVL(commission_pct >= .2);

查询结果如下:

+------------+
|  COUNT(*)  |
+------------+
|      5     |
+------------+
OceanBase COALESCE
OceanBase NVL
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

OceanBase 控制台指南

OceanBase ODC 使用指南

OceanBase Web 版 ODC

OceanBase 客户端版 ODC

OceanBase Connector/J 开发者指南

OceanBase 什么是OceanBase Connector/J

OceanBase SQL 参考(MySQL 模式)

OceanBase SQL 参考(Oracle 模式)

OceanBase 基本元素

OceanBase 数据库对象

OceanBase 函数

OceanBase 单行函数

OceanBase 返回数字的字符串函数

OceanBase 通用比较函数

OceanBase 编码解码函数

OceanBase SQL 调优指南

OceanBase 相关协议

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }