ITPub博客

首页 > > > CHARINDEX 函数用法

CHARINDEX 函数用法

作者:飘絮絮絮丶 时间:2023-03-20 15:02:13 0 删除 编辑
  • CHARINDEX 函数:

会在第二个字符表达式中搜索一个字符表达式,这将返回第一个表达式(如果发现存在)的开始位置。

语法

CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )
  • 参数

expressionToFind 一个字符表达式,其中包含要查找的序列。 expressionToFind 限制为 8000 个字符 。

expressionToSearch 要搜索的字符表达式。

start_location 表示搜索开始位置的 integer 或 bigint 表达式 。 如果 start_location 未指定、具有负数值或 0,搜索将从 expressionToSearch 的开头开始 。

  • 返回类型

如果 expressionToSearch 具有一个 nvarchar(max)、varbinary(max) 或 varchar(max) 数据类型,则为 bigint;否则为 int 。

DECLARE @document varchar(64);  
SELECT @document = 'Reflectors are vital safety' +  
                   ' components of your bicycle.';  
SELECT CHARINDEX('bicycle', @document);  
GO 
/*返回值为 48 */
select charindex(CHAR(32),'this Test is Test')
  • 从特定位置中搜索
DECLARE @document varchar(64);  
  
SELECT @document = 'Reflectors are vital safety' +  
                   ' components of your bicycle.';  
SELECT CHARINDEX('vital', @document, 5);  
GO
/*返回值为 16 */
  • 搜索不存在的表达式
DECLARE @document varchar(64);  
  
SELECT @document = 'Reflectors are vital safety' +  
                   ' components of your bicycle.';  
SELECT CHARINDEX('bike', @document);  
GO  
  • 执行区分大小写的搜索
  1. 此示例在搜索的字符串'This is a Test``'中执行区分大小写的字符串'TEST'搜索。
USE tempdb;  
GO  
--perform a case sensitive search  
SELECT CHARINDEX ( 'TEST',  
       'This is a Test'  
       COLLATE Latin1_General_CS_AS);
/*返回值为 0*/
  1. 此示例在'This test is a Test'中执行区分大小写的字符串'Test'搜索。
USE tempdb;  
GO  
SELECT CHARINDEX ( 'Test',  
       'This test is a Test'  
       COLLATE Latin1_General_CS_AS); 
/*返回值为16*/
  • 执行不区分大小写的搜索
  1. 此示例在'This test is a Test'中执行不区分大小写的字符串'TEST'搜索。
USE tempdb;  
GO  
SELECT CHARINDEX ( 'TEST',  
       'This test is a Test'  
       COLLATE Latin1_General_CI_AS);  
GO  
/*返回值为6*/

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69946831/viewspace-3127624/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-09-09

  • 博文量
    2646
  • 访问量
    42373