关于字符串查找 charindex ,Patindex 还有一个like
字符串查找。在模糊朝找的情况下,其实3者的效率是差不多的。都需要一个一个取出来然后扫一遍╮(╯_╰)╭。然而用法还是会有一点儿的区别
1 charindex (查找的字符串,字符串表达式[,开始查找的位置]) ,简单来说用法就是这样纸。然而这个函数对 text,ntext,image 类型无效,并且从1开始哦~并不是0
SELECT CHARINDEX('123','123123123123123') --1 SELECT CHARINDEX('123','123123123123123',3) --4
2 Patindex ('%查找的字符串%',字符串表达式) ,既然能用 %% 那就表示了兼容了like 所支持的正则表达式了。
SELECT PATINDEX('%1234%','1234123123123123') --1 SELECT PATINDEX('1234','1234123123123123') --0
3 like 这个就省略了╮(╯_╰)╭。
虽然说看起来like 没有 patindex 写起来方便,但是!如果是前匹配 AAA like 'B%' 的时候,可以走索引啊!!所以还是不同的情况选择不同的方式
4 比对一下
|
正则匹配 |
选择开始位置
|
支持索引查找 |
like
|
可以 |
不可以
|
部分可以
|
charindex
|
不可以
|
可以
|
不可以
|
patindex
|
可以
|
不可以
|
不可以
|
如果错了,请各位拍砖~
祝大家新年快乐~