SQL中 patindex函数的用法

语法格式:PATINDEX ( '%pattern%' , expression )

 

返回pattern字符串在表达式expression里第一次出现的位置,起始值从1开始算。

pattern字符串在expression表达式里没找就返回0,对所有有效的文本和字符串就是有效的数据类型。

描述一下此函数的具体用法:


1. PATINDEX ( '%pattern%' , expression )

 

'%pattern%'的用法类似于 like '%pattern%'的用法,也就是模糊查找其pattern字符串是否是expression找到,找到并返回其第一次出现的位置。

如:

select patindex('�b%','abcaabbeeabb')

结果5,也就是abb第一次出现的位置。


2.PATINDEX ( '%pattern' , expression )

 

'%pattern' 类似于 like '%pattern'的用法,前面用模糊查找,也就是查找pattern的结束所在expression的位置,也就是从后面匹配起查找。

如:

select patindex('�b','abcaabbeeabb')

返回10,也就是abb在后面第一次出现的位置。

select patindex('�b','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]里,所以就找到第一次这位。


阅读更多
文章标签: sql
个人分类: 数据库
上一篇sql with as 用法
下一篇供参考的 php 学习路线
想对作者说点什么? 我来说一句

sqlserver使用UNPIVOT函数列转行

2015年01月15日 654B 下载

SQL Server CHARINDEX和PATINDEX详解

2007年10月31日 6KB 下载

sprintf函数用法详解

2017年02月21日 33KB 下载

sql server 函数用法全解

2010年05月07日 1.94MB 下载

MATLAB solve函数使用方法

2010年12月09日 62KB 下载

sql exists和not exists用法

2012年08月21日 3KB 下载

readfile函数详解

2013年05月23日 52KB 下载

matlab的pwelch函数说明

2014年02月13日 56KB 下载

QT_connect函数用法

2016年01月26日 252KB 下载

matlab bar3函数应用

2012年05月16日 263B 下载

没有更多推荐了,返回首页

关闭
关闭