SQL中 patindex函数的用法

返回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/chenqingbin/p/11971413.html

时间: 2024-08-25 01:26:18

SQL中 patindex函数的用法的相关文章

Sql Server REPLACE函数的使用;SQL中 patindex函数的用法

Sql Server REPLACE函数的使用 REPLACE用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式. 语法REPLACE ( ''string_replace1'' , ''string_replace2'' , ''string_replace3'' ) 参数''string_replace1'' 待搜索的字符串表达式.string_replace1 可以是字符数据或二进制数据. ''string_replace2'' 待查找的字符串表达式.string_re

SQL中SUBSTRING函数的用法

功能:返回字符.二进制.文本或图像表达式的一部分 语法:SUBSTRING ( expression, start, length ) SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分.这个函数的名称在不同的资料库中不完全一样: MySQL: SUBSTR(), SUBSTRING() Oracle: SUBSTR() SQL Server: SUBSTRING() 参数: expression 字符串.二进制字符串.文本.图像.列或包含列的表达式.请勿使用包含聚合函数

sql中decode(...)函数的用法

相当于if语句 decode函数比较1个参数时 SELECT ID,DECODE(inParam,'beComparedParam','值1' ,'值2') name FROM bank #如果第一个参数inParam=='beComparedParam',则select得到的name显示为值1, #如果第一个参数inParam!='beComparedParam',则select得到的name显示为值2 decode函数比较多个参数时 SELECT ID,DECODE(inParam,'par

awk中split函数的用法

The awk function split(s,a,sep) splits a string s into an awk array a using the delimiter sep. time=12:34:56 echo $time | awk '{split($0,a,":" ); print a[1]}' 12   echo $time | awk '{split($0,a,":" ); print a[3]}' 34   echo $time | awk

PHP中spl_autoload_register函数的用法

spl_autoload_register (PHP 5 >= 5.1.2) spl_autoload_register — 注册__autoload()函数 说明bool spl_autoload_register ([ callback $autoload_function ] )将函数注册到SPL __autoload函数栈中.如果该栈中的函数尚未激活,则激活它们. 如果在你的程序中已经实现了__autoload函数,它必须显式注册到__autoload栈中.因为 spl_autoload

Delphi中 StrToIntDef函数的用法

Delphi中 StrToIntDef函数的用法: 比如我要判断一个文本框里输入的字符串能不能转换为integer类型,如果能,则返回转换后的整型数据,如果不能,则返回整数0,那么我就可以用strtointdef这个函数. 写法如下: 假设edit1.text:='1000'; 则strtointdef(edit1.text,0)返回值为1000. 如果edit1.text:='fdafds',则返回值为0. (如果你用strtoint(edit1.text)当edit1.text:='fdad

SQL中常用函数

SELECT CONVERT(varchar(100), GETDATE(), 23) AS  日期 结果:2017-01-05 select ISNULL(price,'0.0')   FROM table 将表中为null的值变成0.0 select * from [DBData].[dbo].[T_Student] where [Name]='LILEI' 等效于: select * from [DBData].[dbo].[T_Student] where [Name]='lilei'

C++中substr函数的用法

原文地址:http://blog.csdn.net/no_retreats/article/details/7853066 C++中substr函数的用法 #include<string>#include<iostream>using namespace std; main(){string s("12345asdf");string a=s.substr(0,5);       //获得字符串s中 从第0位开始的长度为5的字符串//默认时的长度为从开始位置到尾

SQL中 decode()函数简介

SQL中 decode()函数简介 今天看别人的SQL时看这里面还有decode()函数,以前从来没接触到,上网查了一下,还挺好用的一个函数,写下来希望对朋友们有帮助哈! decode()函数简介: 主要作用:将查询结果翻译成其他值(即以其他形式表现出来,以下举例说明): 使用方法: Select decode(columnname,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值) From talbename Where … 其中columnname为要选择的table中所定义的