SQL CHARINDEX - 判断是否包含字符(表达式),返回字符(表达式)的开始位置
1、CHARINDEX(charindex) 函数介绍
此函数会在第二个字符表达式中搜索一个字符表达式,这将返回第一个表达式(如果发现存在)的开始位置。
CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )
参数说明:
返回类型:如果 expressionToSearch 具有一个 nvarchar(max)、varbinary(max) 或 varchar(max) 数据类型,则为 bigint;否则为 int 。
备注:
2、使用示例:
2.1 常用
DECLARE @doc VARCHAR(64); SELECT @doc = 'Hi 滔Roy! ' + 'These are from MSSQL '; SELECT CHARINDEX('MSSQL', @doc); --输出 25 GO
2.2 从第n个字符开始搜索
--从第2个字符开始搜索 DECLARE @doc VARCHAR(64); SELECT @doc = 'Hi 滔Roy! ' + 'These are from MSSQL '; SELECT CHARINDEX('滔Roy', @doc,2); --输出 4 GO --从第5个字符开始搜索 DECLARE @doc VARCHAR(64); SELECT @doc = 'Hi 滔Roy! ' + 'These are from MSSQL '; SELECT CHARINDEX('滔Roy', @doc,5); --输出 0 GO
2.3 区分大小写(Latin1_General_CS_AS)和不区分大小写(Latin1_General_CI_AS)
--COLLATE Latin1_General_CS_AS 区分大小写 DECLARE @doc VARCHAR(64); SELECT @doc = 'Hi 滔Roy! ' + 'These are from MSSQL '; SELECT CHARINDEX('mssql', @doc COLLATE Latin1_General_CS_AS); --输出 0 GO --COLLATE Latin1_General_CI_AS 不区分大小写 DECLARE @doc VARCHAR(64); SELECT @doc = 'Hi 滔Roy! ' + 'These are from MSSQL '; SELECT CHARINDEX('mssql', @doc COLLATE Latin1_General_CI_AS ); --输出 25 GO
创建时间:2021.12.28 更新时间: