要将子串与字符串匹配,应使用百分号通配符 (%expression)。例如,SELECT ... WHERE Description SIMILAR TO 'car' 仅与 car 匹配,与 sportscar 不匹配。但是,SELECT ... WHERE Description SIMILAR TO '%car' 则与 car、sportscar 和所有以 car 结尾的字符串都匹配。
当只依据子字符类进行匹配时,必须包含外部方括号以及用于子字符类的方括号。例如,expression SIMILAR TO '[[:digit:]]')。有关子字符类匹配的详细信息,请参见正则表达式:特殊子字符类。
比较是逐个字符执行的,这与等号 (=) 运算符或其它运算符的逐字符串比较不同。例如,在 UCA 归类(归类设置为 UCA 的 CHAR 或 NCHAR)中进行比较时,'Æ'='AE' 为 true,但 'Æ' SIMILAR TO 'AE' 为 false。
对于逐个字符进行的匹配比较,被搜索的表达式中的每个字符都必须与 SIMILAR TO 模式中的一个字符或一个通配符匹配。
SIMILAR TO 搜索条件可以用于比较 CHAR 和 NCHAR 字符串。这种情况下会执行字符集转换,以便使用共同的数据类型进行比较。然后逐个字符地执行比较。请参见CHAR 和 NCHAR 之间的比较。
通过在引号引起的值之前加前缀 N(例如,expression SIMILAR TO N'pattern'),可以将 expression 或 pattern 指定为 NCHAR 字符串文字。还可以使用 CAST 函数将模式转换为 CHAR 或 NCHAR(例如,expression SIMILAR TO CAST(pattern AS datatype))。