codecamp

OceanBase 运算符概述

运算符一般用于连接运算数或参数之类的单个数据项且返回结果。从语法上讲,运算符出现在运算数之前、之后或两个运算数之间均可。一般用特殊字符或关键字表示运算符,例如,除法运算符用斜杠(/)表示。本章讨论非逻辑(非布尔)运算符,这些运算符本身不能用作查询或子查询的 WHERE 或 HAVING 条件。

本章将详细介绍以下运算符:

  • 算术运算符
  • 串联运算符
  • 层次查询运算符
  • 集合运算符

一元和二元运算符

运算符可分为两大类:

  • 一元运算符:一元运算符仅对一个运算数进行运算。一元运算符常用格式:
运算符 运算数
  • 二元运算符:二元运算符顾名思义是对两个运算数进行运算。二元运算符常用格式:
运算数1 运算符 运算数2

其他具有特殊格式的运算符可接受两个以上的运算数。如果为运算符提供了空运算数(NULL), 则结果始终为空。唯一不遵循此规则的是串联(||)运算符。

运算符优先级

优先级会影响 OceanBase 数据库在同一表达式中计算不同运算符的顺序。在计算包含多个运算符的表达式时,OceanBase 会先计算优先级更高的运算符,然后再计算优先级较低的运算符,优先级相等时,在表达式中从左到右对相等的运算符求值。

下表列出了 SQL 运算符中从高到低的优先级。同一行上列出的运算符具有相同的优先级。

运算符

运算方式

+、-(作为一元运算符)、PRIOR、CONNECT_BY_ROOT

正号、负号、层次结构中的位置。

*、/

乘法、除法。

+、-(作为二元运算符)、||

加、减、串联。

条件表达式在数据库评估完运算符后再进行评估

详情请参阅文档 SQL 条件概述

在以下示例中,由于乘法的优先级高于加法,因此数据库首先将 2 乘以 3,然后再将结果加到 1。

1+2*3

您也可以在表达式中使用括号来限制运算符优先级。OceanBase 数据库将先对括号内的表达式求值,再对括号外部的表达式求值。

SQL 还支持集合运算符(​UNION​、​UNION ALL​、​INTERSECT​ 和 ​MINUS​),集合运算符会合并查询返回的行集,而不是单个数据项。所有集合运算符都具有相同的优先级。


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; }