SQL中 patindex函数的用法详解
作者:书写者 发布时间:2024-01-23 14:55:39
返回pattern字符串在表达式expression里第一次出现的位置,起始值从1开始算。
pattern字符串在expression表达式里没找就返回0,对所有有效的文本和字符串就是有效的数据类型。
描述一下此函数的具体用法:
1. PATINDEX ( '%pattern%' , expression )
'%pattern%'的用法类似于 like '%pattern%'的用法,也就是模糊查找其pattern字符串是否是expression找到,找到并返回其第一次出现的位置。
如:
select patindex('%abb%','abcaabbeeabb')
结果5,也就是abb第一次出现的位置。
2.PATINDEX ( '%pattern' , expression )
'%pattern' 类似于 like '%pattern'的用法,前面用模糊查找,也就是查找pattern的结束所在expression的位置,也就是从后面匹配起查找。
如:
select patindex('%abb','abcaabbeeabb')
返回10,也就是abb在后面第一次出现的位置。
select patindex('%abb','abcaabbeeabbr')
返回0,后面的第一个字母r和abb不匹配,所以返回0
3.PATINDEX ( 'pattern%' , expression )
'pattern%'类似于 like 'pattern%'也就前面用精确查找,后面模糊查找,也就相当于查询pattern首次出现的位置。
如:
select patindex('abb%','abbcaabbeeabb')
返回1,也就相当于起始值
select patindex('abb%','arbbcaabbeeabb')
返回0,开头找不到就返回0,后面无论有多少都不管。
4.PATINDEX ( 'pattern' , expression )
这就相当于精确匹配查找,也就是pattern,expression完全相等。
如:
select patindex('abb','abb')
返回1,完全相等
select patindex('abb','abbr')
返回0,不完全相等
5. patindex('%[pattern]%','ddabcaabbeeabbr'),
patindex('%[^pattern]%','ddabcaabbeeabbr')
在此先说[]的用法,[]是指定某些特殊的字符。[^]除[]之外的字符串,[]这其中的每一个。
如:
Symbol Meaning
LIKE '5[%]' 5%
LIKE '[_]n' _n
LIKE '[a-cdf]' a, b, c, d, or f
LIKE '[-acdf]' -, a, c, d, or f
LIKE '[ [ ]' [
LIKE ']' ]
LIKE 'abc[_]d%' abc_d and abc_de
LIKE 'abc[def]' abcd, abce, and abcf
如:
select patindex('%[d]%','rcrdsddddaadadffdr')
返回4,[]中d在字符串rcrdsddddaadadffdr的第一次出现的位置。
select patindex('%[cd]%','rcrdsdddrdaadadffdr')
返回2,[]中c,d在其中一个的位置,返回最先出现的这个位置,c在此字符串里第一次出现位置是2,而d是4,结果取最先的那个。
select patindex('%[sd]%','rcrdsdddrdaadadffdr')
返回4,[]中c,d在其中一个的位置,返回最先出现的这个位置,s在此字符串里第一次出现位置是5,而d是4,结果取最先的那个。
select patindex('%[^r]%','rrrdsdddrdaadadffdr')
返回4,除[]中的字符串的匹配字符,第一次出现d不在[^r]里,所以就找到第一次这位。
select patindex('%[^rd]%','rrrdsdddrdaadadffdr')
返回5,除[]中的字符串的匹配字符,第一次出现s不在[^rd]里,所以就找到第一次这位。
select patindex('%[^rsd]%','rrrdsdddrdaadadffdr')
返回11,除[]中的字符串的匹配字符,第一次出现a不在[^rsd]里,所以就找到第一次这位。
来源:https://www.cnblogs.com/accumulater/p/7250983.html


猜你喜欢
- 我就废话不多说了,还是直接看代码吧def c(a,b): c=a**2+b**2 return ("the right trian
- 在第一部分和第二部分中我们分别介绍了改善网站性能中页面内容和服务器的几条守则,除此之外,JavaScript和CSS也是我们页
- 本文实例讲述了mysql优化小技巧之去除重复项实现方法。分享给大家供大家参考,具体如下:说到这个去重,脑仁不禁得一疼,尤其是出具量比较大的时
- 反射什么是反射? - 反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力(自省) 面向对象中的反射&nb
- Python数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:GadFlymSQL MySQL PostgreSQL Micros
- 1. 文件的读写原理:文件的读写称为I/O操作。操作原理:.py文件是用解释器去运行,调用OS操作系统的资源,去操作磁盘上的文件。操作流程:
- 由于GIL(Global Interpreter Lock)的存在使得在同一时刻Python进程只能使用CPU的一个核心,也就是对应操作系统
- BN原理、作用函数参数讲解BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, tr
- 一、旧版本(1.0以下)的卷积函数:tf.nn.conv2d在tf1.0中,对卷积层重新进行了封装,比原来版本的卷积层有了很大的简化。con
- 本文实例讲述了Python实现的爬取小说爬虫功能。分享给大家供大家参考,具体如下:想把顶点小说网上的一篇持续更新的小说下下来,就写了一个简单
- Fiddler的手机抓包过程1、启动Fiddler打开菜单栏中的 Tools > Fiddler Options,打开“Fiddler
- 需要处理原始的音频,所以给服务器的环境安装librosa的包pip install librosa直接pip install librosa
- 有 N 个花园,按从 1 到 N 标记。在每个花园中,你打算种下四种花之一。paths[i] = [x, y] 描述了花园 x 到花园 y
- 有一个优秀的库可以使用————demjson示范链接http
- 本文实例讲述了Python实现简单截取中文字符串的方法。分享给大家供大家参考。具体如下:web应用难免会截取字符串的需求,Python中截取
- 先简单做个分享,有时间再补一个完整的用例self.textEdit = QtGui.QTextEdit(slef)1.设置背景颜色self.
- 原问题是这样的:如何用SQL语句(不是Oracle),求出下表每一行的5个字段中的最大值,最后生成一个新字段。例如:第一行最大值 -5.0
- 基本概念 javascript是一门解释型的语言,浏览器充当解释器。js执行时,在同一个作用域内是先解释再执行。解释的时候会编译f
- 一、背景:近期在利用 pycharm 安装第三方库时会提示 pip 不是最新版本, 因此对 pip 进行更新,但是生成最新版本之后, pi
- 具体内容如下:1 os.system例如 ipython中运行如下命令,返回运行状态statusos.system('cat /et