SQL Server中的CHARINDEX函数用于查找一个字符串(子字符串)在另一个字符串中的起始位置。
CHARINDEX ( stringFind , stringSearch [ , start_location ] )
其中:
stringFind:要查找的字符串或子字符串。
stringSearch:被搜索的源字符串。
start_location:开始搜索的位置,可以不指定,默认从头开始搜索。
示例:
1.基础用法
select charindex('o', 'Hello World');
-- 结果:返回 5
如果一个字符串中有多个要搜索位置的字符,添加第三个参数,选择开始的位置:
select charindex('o','Hello Word',6);
-- 结果:返回 8
2.结合其他函数用法
select substring('Hello World', charindex('o', 'Hello World'),3);
-- 结果:返回 'o W'
注:
处理多个匹配的情况:如果被搜索的字符串中有多个匹配项,CHARINDEX将返回第一个匹配项的位置。
如果通过设置开始位置,找到第二个或后面匹配的字符串,返回的数是距离字符串头,而不是距离开始位置。