SQL CHARINDEX()函数
SQL CHARINDEX()函数在指定位置开始搜索字符串中的子字符串,并返回找到的子字符串的位置。如果没有找到子字符串,该函数返回0。它接受三个参数,子字符串,字符串(要搜索的字符串),开始位置(可选参数)搜索将开始的位置。
我们搜索的子字符串不应超过8000个字符。SQL提供了各种字符串类型,包括CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。使用SQL中的字符串函数,我们可以操纵字符串值。
语法
以下是SQL CHARINDEX()函数的语法−
参数
这里,CHARINDEX()函数接受三个参数-
- substring - 要搜索的子字符串,限制为8000个字符。
-
string - 要搜索的字符串。
-
start - 这是一个可选参数。搜索将开始的位置(如果不想从字符串的开头开始)。字符串中的第一个位置是1。
返回值
该函数返回给定字符串中子字符串的位置,如果在字符串中找不到子字符串,则函数返回0。
示例
以下是使用CHARINDEX()函数搜索字符的示例。
输出
执行以上语句后会产生以下输出结果:
示例
以下是使用CHARINDEX()函数搜索子字符串的示例。
输出
执行上述语句会产生以下输出 –
示例
以下是一个示例,用于搜索一个与给定字符串不匹配的子字符串。
输出
执行上述语句后,产生以下输出结果-
示例
以下是在CHARINDEX()函数中将 starting_position 作为参数传递的示例。
输出
执行上述语句后,会产生以下输出:
示例
您可以将表列作为参数传递给 CHARINDEX() 函数,以在特定列中搜索字符。假设我们使用 CREATE 语句创建了一个名为Customers的表,如下所示:
现在让我们使用INSERT语句将 七条 记录插入到customers表中,如下所示:−
下面的SELECT查询使用CHARINDEX()函数在CUSTOMERS表的NAME列中搜索字符”a”。
输出
以下是上述查询的输出结果 –