LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

SQL Server函数:charindex和patindex的用法

admin
2024年11月13日 19:37 本文热度 338

Microsoft SQL Server中,CHARINDEX 函数用于在一个字符串中查找另一个指定字符串的起始位置。如果找到,返回指定字符串在源字符串中的起始位置索引(从 1 开始计数);如果没找到,则返回 0。

基本语法:

charindex(expressionToFind, expressionToSearch [, start_location ])

expressionToFind: 目标字符串,就是想要找到的字符串,最大长度为8000 

expressionToSearch: 用于被查找的字符串。

start_location(可选)开始查找的位置,为空时默认从第一位开始查找。

1、简单测试:

select charindex('test','this Test is Test') as 位置

结果为6

2、增加开始位置,但结果还是从前往后数

select charindex('test','this Test is Test',7) as 位置

结果为14

3、大小写敏感

select charindex('test','this Test is Test'COLLATE Latin1_General_CS_AS) as 位置

结果为0

4、大小写不敏感,CICase-InSensitve的缩写

select charindex('Test','this Test is Test'COLLATE Latin1_General_CI_AS) as 位置

结果为6

5、提取第一个分号前的内容

WITH a1 (col) AS(SELECT '测试2;建军节' UNION ALLSELECT '测试3;' UNION ALLSELECT '测试12;' UNION ALLSELECT '测试13;建军节;')select CASE   WHEN charindex(';',col) > 0   THEN left(col,charindex(';',col)) END colFROM a1

结果为:

测试2;

测试3;

测试12;

测试13;

PATINDEXCHARINDEX类似,PATINDEX也可以用来判断一个字符串中是否包含另一个字符串,二者的差异在于,前者是全匹配,后者支持模糊匹配。

基本语法:

PATINDEX ( '%pattern%', expression )

%pattern%:这是包含通配符的模式字符串。通配符“%”表示零个或多个字符。例如“% abc%” 可以匹配包含“abc”的任何字符串,像“xabc”“abcdef”等。

expression:这是要在其中查找模式的源字符串。

例如:

select patindex('%ter%','interesting data') as 位置

结果为3

select patindex('%t_ng%','interesting data') as 位置

结果为8

注意:

1、在大多数简单的、没有通配符的字符串查找场景中,CHARINDEX 函数的效率通常更高。因为 CHARINDEX 只需要进行基本的字符串逐字符匹配,而 PATINDEX 函数由于要处理可能存在的通配符和复杂的模式匹配规则,会涉及更复杂的逻辑处理。

2MySQL 不支持charindexpatindex函数,但有类似功能的函数。


该文章在 2024/11/14 11:40:42 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved