codecamp

OceanBase SQL条件概述

条件用来判断数据的值,并返回 TRUEFALSE 或 UNKNOWN。它由一个或多个表达式和逻辑(布尔)运算符等组件组合而成。只要条件出现在 SQL 语句中,您就必须使用正确的条件语法。

注意 
参数 NLS_COMP 和 NLS_SORT 共同影响字符的排序与比较。若将数据库的 NLS_COMP 指定为LINGUISTIC,那么本开发指南中所有被提到的实体都会遵循参数 NLS_SORT 所指定的规则。若 NLS_COMP 的值没有被指定为 LINGUISTIC,那么函数将不受 NLS_SORT 影响。NLS_SORT 的值可以被直接指定,如果没有被指定,它将继承 NLS_LANGUAGE1 的值。

您可以在这些语句的 WHERE 子句中使用条件:

  • DELETE
  • SELECT
  • UPDATE

您也可以在 SELECT 语句的这些子句中使用条件:

  • WHERE
  • START WITH
  • CONNECT BY
  • HAVING

条件可以称为逻辑数据类型,尽管 OceanBase 数据库不正式支持这样的数据类型。

例如,简单条件 1 = 1 判断结果为 TRUE。

下面更复杂的条件将 salary 的值加上 commission_pct 得值(函数 NVL 将 salary 中的 NULL 值替换为 0 ),并判断总和是否大于 25000。

NVL(salary, 0) + NVL(salary + (salary * commission_pct, 0) > 25000)

逻辑条件 AND 可以将多个条件组合成一个条件。

(1 = 1) AND (5 < 7)

SQL 语句中的有效条件:

name = 'SMITH'
employees.department_id = departments.department_id
hire_date > '01-JAN-08'
job_id IN ('SA_MAN', 'SA_REP')
salary BETWEEN 5000 AND 10000
commission_pct IS NULL AND salary = 2100

条件优先

条件优先级指的是 OceanBase 数据库在同一表达式中判断不同条件的顺序。当计算包含多个条件的表达式时,先判断较高优先级的条件,最后判断较低优先级的条件,而优先级相等的条件则按照从左到右的顺序判断。例如 AND 和 OR 连接的多个条件,不能按照从左到右的顺序判断,而是按照先计算AND然后计算OR的顺序。

SQL 条件优先级表

条件类型

功能

=、!=、<、>、<=、>=

比较。

IS [NOT] NULL、LIKE、[NOT] BETWEEN、[NOT] IN、EXISTS、IS OF 类型

比较。

NOT

取幂,逻辑取反。

AND

比较。

OR

分离。

优先级按照从高到低排列出,同一行上列出的条件具有相同的优先级。

OceanBase 表达式列表
OceanBase 比较条件
温馨提示
下载编程狮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; }