Sqlserver模糊查询几种方式记录

我有一张表TestInsertBase,里边所有的数据如下:

Id    Name
1    张三asdfg
2    李四edghws
3    王五sdfgs
4    赵六qwer
5    123ffgadcc
6    456bsnns
7    456kluty

1、like ‘%模糊匹配内容%’,该种模糊匹配为包含匹配

 select * from TestInsertBase where name like '%qw%'

查询出表TestInsertBase中Name包含qw的项,结果:

Id	Name
4	赵六qwer

2、like ‘模糊匹配内容%’与like ‘%模糊匹配内容’,首匹配与尾匹配

select * from TestInsertBase where name like '王%'

查询出表TestInsertBase中Name以“王”字为首的所有数据,结果:

Id	Name
3	王五sdfgs
select * from TestInsertBase where name like '%y'

查询出表TestInsertBase中Name以字母“y”结尾的所有数据,结果:

Id	Name
7	456kluty

3、_匹配,固定长度字符匹配,一个_代表一个字符

--匹配name为8位字符长度的数据
select * from TestInsertBase where name like '________'

结果为:

Id	Name
2	李四edghws
6	456bsnns
7	456kluty
--匹配name为8位字符长度,且倒数第三位为u的的数据
select * from TestInsertBase where name like '_____u__'

 结果为:

Id	Name
7	456kluty

 4、[],范围匹配,匹配包含在中括号中字符的内容

--有一条数据为456bsnns,以下方式都能查询到这条
--1、匹配第4位为b的
select * from TestInsertBase where name like '456[b]snns'
--2、匹配第4位为bcdef其中一位的
select * from TestInsertBase where name like '456[bcdef]snns'
--2、匹配第4位为a到f中其中一位的
select * from TestInsertBase where name like '456[a-f]snns'

5、[^],范围匹配的取反,匹配不包含在这个范围中的字符

--有一条数据为456bsnns、一条为456ksnns
--1、匹配第4位不为b的
select * from TestInsertBase where name like '456[^b]snns'
--2、匹配第4位不为bcdef其中一位的
select * from TestInsertBase where name like '456[^bcdef]snns'
--2、匹配第4位不为a到f中其中一位的
select * from TestInsertBase where name like '456[^a-f]snns'
以上几种方式都会将456bsnns过滤,查询出456ksnns

 

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值