LIKE 和 MATCHES 条件中的通配符

GBase 8s 产品支持 ASCII 字符作为 MATCHES 和 LIKE 条件中的通配符。

GBase 8s 产品支持以下 ASCII 字符作为通配符:
条件 通配符
LIKE _ %
MATCHES * ? [ ] ^ -
对于 CHAR 和 VARCHAR 数据,数据库服务器对 LIKE 和 MATCHES 条件中的模式匹配执行逐字节的比较。对于 NCHAR 和 NVARCHAR 数据,数据库服务器在 LIKE 和 MATCHES 条件中执行基于逻辑字符而非字节的模式匹配。因此,LIKE 子句的下划线 (_) 通配符和 MATCHES 子句的 ?(问号)通配符与任何一个单字节或多字节字符匹配,如下表所示。
条件 带引号字符串 列值 结果
LIKE 'ab_d' 'abcd' True
LIKE 'ab_d' 'abA1A2d' True
MATCHES 'ab?d' 'abcd' True
MATCHES 'ab?d' 'abA1A2d' True

数据库服务器将所有多字节字符视作文字字符。要告诉数据库服务器按通配符文字意义解释通配符,必须在该字符前加一个转义字符。您必须将单字节字符用作转义字符;数据库服务器不能识别多字节字符的转义字符。缺省转义字符为反斜杠 (\) 符号。

以下 MATCHES 条件为显示的列值返回 TRUE 结果。
条件 带引号字符串 列值 结果
MATCHES 'ab\?d' 'ab?d' True