关于字符串查找 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
可以
不可以
不可以

如果错了,请各位拍砖~

祝大家新年快乐~

原文地址:https://www.cnblogs.com/Gin-23333/p/5188791.html