MATCHES 运算符是用于将列值与另一列值或括起来的字符串相比较的 GBase 8s 扩展。
MATCHES 运算符支持括起来的字符串中的这些通配符。
WHERE description MATCHES '*tennis*'
WHERE fname MATCHES '[Ff]rank'
WHERE fname MATCHES '[Ff]*'
WHERE fname MATCHES '*[a-d]'
MATCHES 有一相关联的 matches( ) 运算符函数。您可为您自己的用户定义的数据类型定义 matches( ) 函数。要获取更多信息,请参阅 GBase 8s 用户定义的例程和数据类型开发者指南 。
如果 DB_LOCALE 或 SET COLLATION 指定支持本地化排序的非缺省的语言环境,且您使用方括号([ . . . ])符号为 MATCHES 运算符指定范围,则数据库服务器使用本地化的排序顺序,而不是代码集顺序,来解释该范围并比较那些有 CHAR、CHARACTER VARYING、LVARCHAR、NCHAR、NVARCHAR 和 VARCHAR 数据类型的值。
通常的规则是,仅可在本地化的排序顺序中比较 NCHAR 和 NVARCHAR 数据类型,此行为是该规则的例外。要获取更多关于包括 MATCHES 或 LIKE 运算符的条件的 GLS 方面的信息,请参阅 GBase 8s GLS 用户指南。
在 NLSCASE INSENSITIVE 数据库中,对 NCHAR 和 NVARCHAR 数据的比较操作不理会大小写的差异,因此数据库服务器将包含相同序列字符的字符串之中的大写变量作为重复处理。作为 MATCH 运算符的运算对象,下列字符串的所有对都返回 TRUE:
'beta' 'Beta' 'BETA' 'bETa' 'betA' 'BetA'
要获取更多信息,请参阅 在 NLSCASE INSENSITIVE 数据库中重复的行 和 在区分大小写的数据库中的 NCHAR 和 NVARCHAR 表达式。