codecamp

OceanBase 模式匹配条件

模式匹配条件(Pattern-matching Conditions)用来比较字符数据。

LIKE 条件

LIKE​ 条件用于模式匹配。相等运算符(=)指的是一个字符值与另一个字符值完全匹配,而 ​LIKE​ 条件通过在第一个值中搜索由第二个字符值指定的模式来将一个字符值的一部分与另一个字符值进行匹配。

LIKE​ 使用输入字符集定义的字符来计算字符串。

语法

char1 [NOT] LIKE char2 [ ESCAPE esc_char ]

除了 ​LIKE​,特殊的模式匹配字符 ​_​ 表示值中的一个字符恰好匹配,​​ 表示值中的零个或多个字符匹配。模式 ​​ 不能与 ​NULL​ 匹配。

参数

参数

说明

char1

字符表达式,例如字符列,称为搜索值。

char2

字符表达式,通常是文字,称为模式。

esc_char

字符表达式,通常是文字,ESCAPE 将 esc_char标识为转义字符。当转义符置于模式匹配符之前时,该模式匹配符被解释为普通的字符。

示例

以下语句使用了 ​LIKE​:

SELECT last_name FROM employees WHERE last_name LIKE '%A\_B%' ESCAPE '\' ORDER BY last_name;
ESCAPE '\'

 会将 

%A\_B%

 中

\ 

后面的模式匹配符‘_’解释为普通的字符。

SELECT salary FROM employees WHERE 'SM%' LIKE last_name ORDER BY salary;

REGEXP_LIKE 条件

REGEXP_LIKE​ 用于正则表达式匹配。​REGEXP_LIKE​ 使用输入字符集定义的字符评估字符串。

语法

REGEXP_LIKE(source_char, pattern [, match_param ])

参数

参数

说明

source_char

用作搜索值的字符表达式,数据类型可以是 CHARVARCHAR2NCHARNVARCHAR2 或 CLOB

pattern

正则表达式,数据类型可以是 CHARVARCHAR2NCHARNVARCHAR2 或 CLOB

source_char

数据类型 VARCHAR2 或 CHAR 的字符表达式,允许您更改条件的默认匹配行为。

如果模式的数据类型与 ​source_char​ 的数据类型不同,OceanBase 将模式转换为 ​source_char​ 的数据类型。

示例

创建表 employees,并向里面插入数据。执行以下语句:

CREATE TABLE employees(manager_id INT, first_name varchar(50), last_name varchar(50), hiredate varchar(50),SALARY INT);
INSERT INTO employees VALUES(300, 'Steven', 'King',  '2019-09-11',23600);     
INSERT INTO employees VALUES(200, 'Steven', 'Markle', '2019-11-05', 23800);
INSERT INTO employees VALUES(100, 'Deven',  'Part',  '2018-10-01',24000);     
INSERT INTO employees VALUES(200, 'Carlos', 'Ross',  '2019-06-11',23500);     
INSERT INTO employees VALUES(200, 'Teven',  'Bell', '2019-05-25', 23000);
INSERT INTO employees VALUES(200, 'Stephen', 'Stiles',  '2018-06-11',24500);    
INSERT INTO employees VALUES(100, 'Ame', 'De Haan', '2018-05-01',11000);      
INSERT INTO employees VALUES(100, 'Jon', 'Errazuriz', '2017-07-21', 1400);   
COMMIT;

查询返回名字为 Steven 或 Stephen 的员工的名字和姓氏(其中 ​first_name​ 以 Ste 开头,以 en 结尾,中间是 v 或 ph),执行以下语句:

SELECT first_name, last_name FROM employees WHERE REGEXP_LIKE (first_name, '^Ste(v|ph)en$')
ORDER BY first_name, last_name;

查询结果如下:

+------------+-----------+
| FIRST_NAME | LAST_NAME |
+------------+-----------+
| Stephen    | Stiles    |
| Steven     | King      |
| Steven     | Markle    |
+------------+-----------+


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