数据仓库服务 GAUSSDB(DWS)-模式匹配操作符:SIMILAR TO
SIMILAR TO
SIMILAR TO操作符根据自己的模式判断是否匹配给定串而返回真或者假。它和LIKE非常类似,只不过它使用SQL标准定义的正则表达式理解模式。
- 匹配规则
- 和LIKE一样,SIMILAR TO操作符只有在它的模式匹配整个串的时候才返回真。如果要匹配在串内任何位置的序列,该模式必须以百分号开头和结尾。
- 下划线 (_)代表(匹配)任何单个字符; 百分号(%)代表任意串的通配符。
- SIMILAR TO也支持下面这些从POSIX正则表达式借用的模式匹配元字符。
表1 模式匹配元字符 元字符
含义
|
表示选择(两个候选之一)。
*
表示重复前面的项零次或更多次。
+
表示重复前面的项一次或更多次。
?
表示重复前面的项零次或一次。
{m}
表示重复前面的项刚好m次。
{m,}
表示重复前面的项m次或更多次。
{m,n}
表示重复前面的项至少m次并且不超过n次。
()
把多个项组合成一个逻辑项。
[...]
声明一个字符类,就像POSIX正则表达式一样。
- 前导逃逸字符可以禁止所有这些元字符的特殊含义。逃逸字符的使用规则和LIKE一样。
- 注意事项
如果SIMILAR TO正则表达式重复匹配字符数量非常庞大,由于受递归大小限制,执行语句会失败并报错invalid regular expression: regular expression is too complex,可尝试调大GUC参数max_stack_depth。
- 正则表达式函数
支持使用函数substring(string from pattern for escape)截取匹配SQL正则表达式的子字符串。
- 示例
1 2 3 4 5
SELECT 'abc' SIMILAR TO 'abc' AS RESULT; result ----------- t (1 row)
1 2 3 4 5
SELECT 'abc' SIMILAR TO 'a' AS RESULT; result ----------- f (1 row)
1 2 3 4 5
SELECT 'abc' SIMILAR TO '%(b|d)%' AS RESULT; result ----------- t (1 row)
1 2 3 4 5
SELECT 'abc' SIMILAR TO '(b|c)%' AS RESULT; result ----------- f (1 row)
- 数据仓库服务GaussDB(DWS)_SQL on Anywhere
- DWS安全_数据仓库服务安全_DWS数据安全管理_DWS安全保障_DWS安全策略
- 调用GaussDB(DWS) API接口_数据仓库服务调用API_如何调用API_在DWS中调用API
- GaussDB数据库函数和字符串_高斯数据库优势_新建高斯数据库_高斯协议
- DWS产品介绍_DWS产品优势_DWS功能_DWS使用场景_DWS是什么
- GAUSS(DWS)工具_gsql工具_DataStudio工具_DSC工具
- GaussDB(DWS)常用SQL_常用SQL命令_SQL语法
- DWS资源管理_GaussDB(DWS)资源管理作用_DWS资源管控
- 数据库监控DMS_数据库智能运维_了解Auto Pilot_DMS_DWS节点监控
- 华为云资料 2021年 7月刊