LIKE 搜索条件的语法如下:
expression [ NOT ] LIKE pattern
expression 被搜索的字符串。
pattern 在 expression 内搜索的模式。
LIKE 搜索条件尝试将 expression 与 pattern 匹配,从而得出 TRUE、FALSE 或 UNKNOWN。如果 expression 与 pattern 匹配(假设未指定 NOT),搜索条件的结果值为 TRUE。如果 expression 或 pattern 的值为 NULL,则搜索条件的结果值为 UNKNOWN。
NOT 关键字会使搜索条件的含义相反,但对于 UNKNOWN,其含义保持不变。
expression 和 pattern 被解释为 CHAR 字符串。pattern 可包含下表中任意数目的支持的通配符:
通配符 | 匹配项 |
---|---|
_(下划线) | 任意一个字符。例如,a_ 与 ab 和 ac 匹配,但与 a 不匹配。
|
%(百分号) | 包含零个或多个字符的任意字符串。例如,bl% 与 bl 和 bla 匹配。
|
[] | 指定范围或集合中的任何单个字符。例如,T[oi]m 与 Tom 或 Tim 匹配。
|
[^] | 不 在指定范围或集合中的任何单个字符。例如,M[^c] 与 Mb 和 Md 匹配,但与 Mc 不匹配。
|
对于任何列名称以字母 a 开头且倒数第二个字符为字母 b 的行,以下搜索条件都会返回 TRUE:
SELECT * FROM table-name WHERE column-name LIKE 'a%b_' |
搜索对象 | 示例 | 其它信息 |
---|---|---|
某字符集合中的一个字符 | LIKE 'sm[iy]th' |
可以通过将字符列在方括号中来指定要查找的字符集。在此示例中,搜索条件与 smith 和 smyth 匹配。 |
某字符范围中的一个字符 | LIKE '[a-r]ough' |
可以通过将字符范围的两端列在方括号中(用连字符分隔)来指定要查找的字符范围。在此示例中,搜索条件与 bough 和 rough 匹配,但与 tough 不匹配。 字符范围 [a-z] 被解释为 "大于等于 a 且小于等于 z",其中大于和小于运算在数据库归类中执行。 范围的下限必须位于上限之前。例如, |
范围与集合的组合 | ... LIKE '[a-rt]ough' |
可以在方括号中将范围和集合组合起来。在此示例中, 模式 [a-rt] 被解释为一个介于 a 和 r 之间(包括 a 和 r)或等于 t 的字符。 |
不在某范围内的一个字符 | ... LIKE '[^a-r]ough' |
脱字符 (^) 用于指定排除在搜索之外的字符范围。在此示例中, 脱字符用于对方括号内的其余内容取反。例如,方括号 [^a-rt] 被解释为不在 a 和 r 之间(包括 a 和 r)且不为 t 的字符。 |
搜索带尾随空白的模式 | '90 ' 、'90[ ]' 和 '90_' |
当搜索模式含尾随空白时,数据库服务器只将此模式与包含空白的值匹配,而并不会为字符串填充空白。例如。模式 '90 '、'90[ ]' 和 '90_' 与表达式 '90 ' 匹配,而与表达式 '90' 不匹配,即使所测试的值位于宽为三个或三个字符以上的 CHAR 或 VARCHAR 列中也是如此。 |
方括号中的任何单个字符都只代表该字符本身。例如,[a]
仅与字符 a 匹配。[^]
仅与脱字符匹配,[%]
仅与百分号字符匹配(在此上下文中百分号字符不作为通配符使用),[_]
仅与下划线字符匹配。同样,[[]
仅与字符 [ 匹配。
模式 [a-]
与字符 a 或 - 匹配。
模式 []
永远没有匹配项,始终不会返回任何行。
模式 [
或 [abp-q
会返回语法错误,因为它们缺少闭括号。
方括号内不能使用通配符。模式 [a%b]
会找到 a、% 或 b 之一。
除非作为方括号内的第一个字符,否则脱字符不能用于对一个范围取非。模式 [a^b]
会找到 a、^ 或 b 之一。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |