SQL中 patindex函数的用法

转载 2013年12月04日 17:11:24

语法格式: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中如何使用patindex

patindex基本语法   PATINDEX ( '%pattern%' , expression ) 参数说明 pattern:字符串。可以使用通配符,但 pattern 之前和之后必须有 %...
  • jkpi888
  • jkpi888
  • 2013年11月05日 21:14
  • 1856

MySQL+SQL函数大全

《MySQL函数大全》 [color=red]字符串函数[/color] ASCII(str)  返回字符串str的第一个字符的ASCII值(str是空串时返回0) mysql> selec...
  • chenlix
  • chenlix
  • 2013年11月30日 11:54
  • 1763

SQLserver中字符串查找功能patindex和charindex的区别

CHARINDEX 和 PATINDEX 函数都返回指定模式的开始位置,PATINDEX 可使用通配符,而 CHARINDEX 不可以 .  .  最近经常使用字符串查找功能。  ...
  • forever_yours
  • forever_yours
  • 2016年11月24日 15:21
  • 1222

patindex函数的用法(SQL)

语法格式:PATINDEX ( '%pattern%' , expression )   返回pattern字符串在表达式expression里第一次出现的位置,起始值从1开始算。 patter...
  • ling45480867
  • ling45480867
  • 2014年03月10日 10:58
  • 902

SQL中 patindex函数的用法

语法格式:PATINDEX ( '%pattern%' , expression )   返回pattern字符串在表达式expression里第一次出现的位置,起始值从1开始...
  • QingHeShiJiYuan
  • QingHeShiJiYuan
  • 2016年01月04日 17:19
  • 160

SQL CHARINDEX 函数、InStr 函数、PATINDEX 函数、stuff函数

CHARINDEX 函数返回字符或者字符串在另一个字符串中的起始位置。CHARINDEX 函数调用方法如下:CHARINDEX ( expression1 , expression2 [ , star...
  • yanjiaye520
  • yanjiaye520
  • 2011年05月30日 09:55
  • 1260

SQL截取字符串(substring与patindex的使用)

SQL截取字符串(substring与patindex的使用) 首先学习两个函数 1.substring  返回字符、binary、text 或 image 表达式的一部分。  ...
  • happymagic
  • happymagic
  • 2012年09月12日 16:37
  • 2359

SQL截取字符串(substring与patindex的使用)

首先学习两个函数 1.substring  返回字符、binary、text 或 image 表达式的一部分。       基本语法:SUBSTRING ( expression , sta...
  • chao88552828
  • chao88552828
  • 2012年12月04日 18:54
  • 531

sql PATINDEX

PATINDEX 返回指定表达式中某模式第一次出现的起始位置;如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零。 语法 PATINDEX ( '%pattern%' , e­xpre...
  • lizhihui24
  • lizhihui24
  • 2011年12月15日 09:52
  • 186

SQL Server CHARINDEX和PATINDEX详解

如果你写过非常多程序,你可能偶尔会碰到要确定字符或字符窜串否包含在一段文字中,在这篇文章中,我将讨论使用charindex和patindex函数来搜索文字列和字符串。我将告诉你这两个函数是怎么运转的,...
  • siegebaoniu
  • siegebaoniu
  • 2011年01月04日 08:52
  • 249
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL中 patindex函数的用法
举报原因:
原因补充:

(最多只允许输入30个字)