数据库
首页 > 数据库> > SQL CHARINDEX - 判断是否包含字符/表达式

SQL CHARINDEX - 判断是否包含字符/表达式

作者:互联网

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  更新时间:

标签:--,doc,expressionToSearch,CHARINDEX,表达式,SQL,SELECT
来源: https://www.cnblogs.com/guorongtao/p/15739318.html