SQL通配符过滤

单字符匹配:

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%')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值