SQL PATINDEX - 判断是否包含字符(表达式),返回字符(表达式)的第一次出现的起始位置
SQL PATINDEX - 判断是否包含字符(表达式),返回字符(表达式)的第一次出现的起始位置
1、PATINDEX(patindex)函数介绍
返回模式在指定表达式中第一次出现的起始位置;如果在所有有效的文本和字符数据类型中都找不到该模式,则返回零。
1 | PATINDEX ( '%pattern%' , expression ) |
参数说明:
- pattern //包含要查找的序列的字符表达式。 可以使用通配符;但 pattern 之前和之后必须有 % 字符(搜索第一个或最后一个字符时除外)。 pattern 是字符串数据类型类别的表达式。 pattern最多包含 8000 个字符。expression //是一个expression,通常是针对指定模式搜索的列。 expression 是字符串数据类型类别的表达式。
- 备注:虽然传统正则表达式在 SQL Server 中不受本机支持,但可以使用各种通配符表达式来实现类似的复杂模式匹配。
返回类型:bigint(如果 expression 的数据类型为 varchar(max) 或 nvarchar(max));否则为 int。
注解:
- 如果 pattern 或 expression 为 NULL,则 PATINDEX 返回 NULL。
- PATINDEX 的起始位置为 1。
- PATINDEX 基于输入的排序规则执行比较。 若要以指定排序规则进行比较,则可以使用 COLLATE 将显式排序规则应用于输入。
2、使用示例:
2.1 常用:
1 | SELECT test = PATINDEX( '%tao%' , 'Hi,TaoRoy' ); --输出4 |
2.2 可以使用任意通配符,例如,使用通配符(_)
1 | SELECT test = PATINDEX( '%t_o%' , 'Hi,TaoRoy' ); --输出4 |
PATINDEX 的作用与 LIKE 类似,与 LIKE 不同的是,PATINDEX 返回一个位置,这与 CHARINDEX 类似。
2.3 使用 [^] 字符串运算符查找不是数字、字母或空格的字符的位置。
1 2 | SELECT test = PATINDEX( '%[^ 0-9A-Za-z]%' , 'Hi,TaoRoy' ); --输出3 SELECT test = PATINDEX( '%[0-9A-Za-z]%' , 'Hi,TaoRoy' ); --输出1 |
2.4 排列规则(Latin1_General_BIN)、区分大小写(Latin1_General_CS_AS)和不区分大小写(Latin1_General_CI_AS)
1 2 3 4 5 6 | SELECT test = PATINDEX( '%tao%' , 'Hi,TaoRoy' COLLATE Latin1_General_BIN); --输出0 SELECT test = PATINDEX( '%Tao%' , 'Hi,TaoRoy' COLLATE Latin1_General_BIN); --输出4 --区分大小写 SELECT test = PATINDEX( '%tao%' , 'Hi,TaoRoy' COLLATE Latin1_General_CS_AS); --输出0 --不区分大小写 SELECT test = PATINDEX( '%tao%' , 'Hi,TaoRoy' COLLATE Latin1_General_CI_AS); --输出4 |
创建时间:2021.12.28 更新时间:
博客园 滔Roy https://www.cnblogs.com/guorongtao 希望内容对你有所帮助,谢谢!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报