codecamp

OceanBase 比较条件

比较条件(Comparison Conditions)用于比较一个表达式与另一个表达式,比较的结果为 TRUEFALSE 或 UNKNOWN

比较条件不能比较大对象(LOB)数据类型。但是您可以通过 PL 程序对 CLOB 数据进行比较。

比较数值表达式时,OceanBase 使用数值优先级来确定条件中的数值比较顺序,比如比较符两边出现不同类型的 数值时,如果有BINARY_DOUBLE则按照BINARY_DOUBLE进行比较, 其次是BINARY_FLOAT, 最后是NUMBER。是比较 NUMBERBINARY_FLOAT 还是 BINARY_DOUBLE 值。

比较字符表达式时,OceanBase 使用字符数据类型比较规则中的规定。它规定了表达式的字符集在比较之前是如何统一的,选择使用二进制和语言比较,还是选择使用空白填充和非空白填充的比较语义。

当使用比较条件对字符值进行语言比较时,首先将它们转换为排序键,然后做比较,比较的过程类似 RAW 数据类型。排序键是由函数 NLSSORT 返回的值。如果两个表达式生成的排序键的前缀相同,即使它们在值的其余部分不同,它们也可以在语言上相等。

如果两个非标量类型的对象具有相同的命名类型,并且它们的元素之间存在一一对应的关系,则它们是可比较的。用户定义的对象类型—嵌套表,在相等或 IN 条件下使用时,必须定义 MAP 方法。嵌套表的元素可以比较。

简单比较条件

一个简单比较条件可以是单个表达式与表达式列表比较或单个表达式与子查询结果比较。

简单比较条件语法如下:

expr   {= | != | ^= | <> | < | >= |}   ( expression_list | subquery )

在简单比较条件中,如果是单个表达式与表达式列表比较,并且表达式列表中的表达式必须在数量和数据类型上与运算符左边的表达式匹配。如果是单个表达式与子查询的值比较,则子查询返回的值必须与运算符左侧的表达式在数量和数据类型上匹配。

组比较条件

一个组比较条件可以是单个表达式与表达式列表或子查询结果的任何或所有成员比较,也可以是多个表达式与表达式列表或子查询结果的任何或所有成员比较。

在组比较条件中,如果是单个表达式或多个表达式列表与表达式列表的任何或所有成员比较,则每个表达式列表中的表达式必须在数量和数据类型上与运算符左边的表达式匹配。如果是单个表达式或多个表达式与子查询结果的任何或所有成员比较,则子查询返回的值必须与运算符左侧的表达式在数量和数据类型上匹配。

组比较条件语法有如下两种:

expr  {= | != | ^= | <> | < | >= | ANY | SOME | ALL } ({ expression_list | subquery})
(expr [, expr ]...){= | != | ^= | ANY | SOME | ALL} ({expression_list  [, expression_list ]... |subquery})
OceanBase SQL条件概述
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; }