SQL CHARINDEX 函数、InStr 函数、PATINDEX 函数、stuff函数

CHARINDEX 函数
返回字符或者字符串在另一个字符串中的起始位置。
CHARINDEX 函数调用方法如下:
CHARINDEX ( expression1 , expression2 [ , start_location ] ) 
Expression1 是要到 expression2 中寻找的字符中,start_location 是 CHARINDEX 函数开始在 expression2 中找expression1 的位置。
CHARINDEX 函数返回一个整数,返回的整数是要找的字符串在被找的字符串中的位置。假如 CHARINDEX 没有找到要找的字符串,那么函数整数“0”。

InStr 函数
返回某字符串在另一字符串中第一次出现的位置。
InStr 函数调用方法如下:
InStr([start, ]string1, string2[, compare])
参数
start
可选项。数值表达式,用于设置每次搜索的开始位置。如果省略,将从第一个字符的位置开始搜索。如果 start 包含 Null,则会出现错误。如果已指定 compare,则必须要有 start 参数。
string1
必选项。接受搜索的字符串表达式。
string2
必选项。要搜索的字符串表达式。
compare
可选项。指示在计算子字符串时使用的比较类型的数值。有关数值,请参阅“设置”部分。如果省略,将执行二进制比较。

两个函数的性质非常效果一样就是搜索一个字符是否出现在另外一个字符串里面

PATINDEX 函数
PATINDEX 函数返回字符或者字符串在另一个字符串或者表达式中的起始位置,PATINDEX 函数支持搜索字符串中使用通配符,这使PATINDEX函数对于变化的搜索字符串很有价值。
和 CHARINDEX 函数一样,PATINDEX 函数返回搜索字符串在被搜索字符串中的起始位置。假如有这样一个PATINDEX 函数:
      PATINDEX(’%BC%’,’ABCD’)
      这个 PATINDEX 函数返回的结果是2,这和 CHARINDEX 函数一样。这里的 % 标记告诉 PATINDEX 函数去找字符串 “BC”,不管被搜索的字符串中在 “BC” 的前后有多少字符!

 

stuff函数

stuff的功能:删除指定长度的字符串并在指定的起始点插入另一组字符

STUFF ( character_expression , start , length , character_expression )

character_expression :操作的字符,

start:删除和插入的起始点,

length:删除的长度,

character_expression :要插入的字符

Select stuff("abcdef",2,3,"ghijk")

go

结果:aghijk

-------------------------------------------------------------------------------------------

功能:返回模式在字符串中第一次出现的位置

patindex( '%pattern%' , expression )

pattern:要查找的模式

expression:被找的字符串

select patindex('%jinweida%','123jinweida54')

go

结果:4

原文地址:https://www.cnblogs.com/bily101/p/4828402.html