单字符匹配:
SELECT * FROM T_Employee
WHERE FName LIKE '_erry'
多字符匹配
使用下划线可以实现“匹配长度为5、以ab开头、剩余字符任意”的功能,而对于“匹
配以k开头,长度不限,剩余字符任意”这样的需求则无法满足,这时就需要使用多字符匹
配了。进行多字符匹配的通配符为半角百分号“%”,它匹配任意次数(零或多个)出现的
任意字符。比如通配符表达式“k%”匹配以“k”开头、任意长度的字符串,“k”、“kerry”、
“kb” 都能匹配这个表达式,而“ark”、“luck”、“3kd”等则不能匹配这个表达式;配符表
达式“b%t”匹配以“b”开头、以“t”结尾、任意长度的字符串,“but”、“bt”、“belt” 都
能匹配这个表达式,而“turbo”、“tube”、“tb”等则不能匹配这个表达式
SELECT * FROM T_Employee
WHERE FName LIKE 'T%'
集合匹配
集合匹配只在MSSQLServer上提供支持,在MYSQL、Oracle、DB2等数据库中不支持,
必须采用变通的手段来实现。
进行集合匹配的通配符为“[]”,方括号中包含一个字符集,它匹配与字符集中任意一
个字符相匹配的字符。比如通配符表达式“[bt]%”匹配第一个字符为b或者t、长度不限的
字符串,“bed”、“token”、“t”都能匹配这个表达式,而“at”、“lab”、“lot”等则不能匹配
这个表达式。
SELECT * FROM T_Employee
WHERE FName LIKE '[SJ]%'
还可以使用否定符“^”来对集合取反,它匹配不与字符集中任意一个字符相匹配的字
符。比如通配符表达式“[^bt]%”匹配第一个字符不为b或者t、长度不限的字符串,“at”、
“lab”、“lot”都能匹配这个表达式,而 “bed”、“token”、“t”等则不能匹配这个表达式。
SELECT * FROM T_Employee
WHERE FName LIKE '[^SJ]%'
SELECT * FROM T_Employee
WHERE NOT(FName LIKE 'S%') AND NOT(FName LIKE 'J%')