SQL Server 中函数PATINDEX()和CHARINDEX()

PATINDEX()和CHARINDEX()都是可以在一段字符串中查找子字符串位置的函数。

主要区别:PATINDEX()支持通配符来查找,CHARINDEX()不支持通配符查找。

1.PATINDEX()

PATINDEX()语法格式:PATINDEX(%pattern%,expression)
pattern:是要查找的子字符串
expression:是被查找的字符串。

PATINDEX()函数返回字符或子字符串在字符串或表达式中的开始位置,如果查找的字符串多次出现,只返回第一次出现的位置下标,位置下标如果找到从1开始,并不是从0开始。

例如:

SQL Server 中函数PATINDEX()和CHARINDEX()_第1张图片

2、CHARINDEX()语法格式:CHARINDEX(pattern,expression,start_location)
pattern:是要查找的子字符串
expression:是被查找的字符串。
start_location:是charindex函数开始在expression中找pattern的起始位置
 

SQL Server 中函数PATINDEX()和CHARINDEX()_第2张图片

 

查找子字符串,找到返回开始下标,找不到返回0. 如果待查找的字符串有多个满足条件的子字符串,可以指定下标,可以从下标开始给后找。  如上图,开始下标指定为3,就会从3开始给后查找。

你可能感兴趣的:(sqlserver,sqlserver,数据库)