SQLserver中字符串查找功能patindex和charindex的区别
2018-07-25 19:30  网络整理    我要评论

charindex和patindex作用一般用来在音长印中搜索印或印串。学期正搜索的印象征要搜索的印,例如,这两个作用反复非零整体。,为了整体是印中要搜索的印的起源数量。。patindex作用供养运用通配符来举行搜索,只是,CHARTEX不供养通配符。。接下来,逐个地辨析这两个作用。

健康状况如何运用CAREQUE作用

      CAREQUEST作用反复印或STR的起源驻扎军队。。CAREQUEST作用要求方式列举如下:

       charindex ( expression1 , 神情2 [ , start_location ] )

       expression1是要到神情2中寻觅的印中,start_location是charindex作用开端在神情2中找expression1的驻扎军队。

      CHAREQUE作用反复整体,反复的整体是印串中要找到的印串的驻扎军队。。学期查提供线索缺乏找到要查找的印串,作用整体0。让我们看一眼下面作用命令的总算:

      charindex(sql, microsoft sql 满足必要)

      为了作用命令将反复微软 sql 满足必要中SQL的起源驻扎军队,在为了事例中,微软做成某事CHAREQUE作用将反复S sql 满足必要11做成某事驻扎军队。

接下来,看一眼为了CHARTEX命令:

      charindex(, microsoft sql server 2000)

      在为了事例中,印反复零,由于印串 不克不及在微软 sql 满足必要被发觉。

      接下来经过两个事例看法一眼健康状况如何运用CAREQUE作用来处理现实的t-sql成绩。

      第第一事例,呈现要显示northwind消息库customer表前5行前卫列的last name。这是消息的前5行。

           contactname

           ------------------------------ 

           maria anders

           ana trujillo

           antonio moreno

           thomas hardy

           christina berglund

      能预告,客户著名的人物象征客户的第第一 著名的人物与决赛 name,他们暗中隔开了一口开始。。运用Caldx作用决定T的中部围绕的驻扎军队。经过这种方式,辨析触控著名的人物列的围绕驻扎军队的资格,这不料显示决赛一列。 name宗派。这是决赛显示在客户表后头的5行。 姓名记载

选择顶部5子串(前卫著名的人物),charindex( ,contactname)+1 ,len(contactname)) as [last name] from 

下面是为了命令出口的总算。

           last name

           ------------------------------ 

           anders

           trujillo

           moreno

           hardy

           berglund

      CHAREQUE作用率先找到 著名的人物与决赛 著名的人物间围绕,例如,子印串作用可以上菜用具CONTACT著名的人物列。,这是鳎的决赛一次 著名的人物被选中。将1添加到CHAREQUEST作用反复的整体中,因而决赛 著名的人物批评从围绕开端的。

      在秒个事例中,就是说,计算记载。,象征特定的印的运动场的一点记载号。。CAREQUE作用的一种附近的求解过程。计算表中addresses运动场中象征单词road或他的缩写rd的记载数,判决的选择是这么的:

select count(*) from  where charindex(rd,地址)> 0,地址)> 1

以为如何运用patindex作用

      patindex作用反复印或印串在另第一印串或说法做成某事起源驻扎军队,patindex作用供养搜索印串中运用通配符,这使patindex作用到某种状态更衣的搜索印串很重要。patindex作用的命令列举如下:

      patindex ( %pattern% , expression )

      打字是第一搜索印串,说法是搜索印串。总而言之,说法是表做成某事运动场。,打字必要印记为%先前和晚年的。,除非印串搜索在印串的后头或后头。

      与CAREQUEST作用相等的数量,patindex作用反复搜索印串在被搜索印串做成某事起源驻扎军队。假设有这么第一patindex作用:

      patindex(%bc%,ABCD)

      为了patindex作用反复的总算是2,这与CAREQUEST作用相等的数量。喂的%印记告知patindex作用去找印串“bc”,不拘BC先前和晚年的的搜索印串中有总计印!

      学期您感到诧异搜索印串如果是由特定的的STRIN启动的,可以对自然环境的保护先前的%tag。为了作用是用这种方式写成的。:

      patindex(ab%,ABCD)

      此命令的总算反复1。,搜索印串ab在搜索印串ABCD中找到。。

      运用通配符编纂者比复杂复杂得多的搜索印串。学期要决定印串如果象征字母A和Z,更多数字,为了PARTEX作用命令能够是这么的:

      patindex(%[a,z,0-9]%[a,z,0-9]%[a,z,0-9]%,xyzabc123)

      注意到,下面事例做成某事搜索印运用了慷慨的的同伴。。看SQL 满足必要在线登记可以获得更多计划中的Tong Fu印的教训。。接下来,用两个事例看法patindex和select怎地同盟者起来运用。

      呈现几何平均找出表中description运动场中是象征单词“bread”或“bread”的一点记载,例如,判决的选择能够是这么的。:

select description from  where patindex(%[b,b]read%,代理)> 0

      喂,通配符用于决定大写小写字母B。。在NothWrand消息库中处决此本子晚年的,抓住以下总算:

           description

           --------------------------------------------------------

           desserts, candies, and sweet breads

           breads, crackers, pasta, and cereal

      这是另第一用另第一通配符查找少数记载的事例。。为了事例健康状况如何选择下面的查询总算?,代理运动场的秒体格入门批评E的记载。。

select description from  where patindex(%[b,b]read%,代理)> 0 and patindex(_[^e]%,代理)=1

      经过在学期判决中扩张第一运用^通配符的patindex作用,可以过滤掉奶油冻, candies, and sweet 面包这张不图回报地。下面的查询总算仅仅第一记载。

           description

           --------------------------------------------------------

           breads, crackers, pasta, and cereal  

总结

      如今能发觉charindex和patindex搜索印串时的区别了吧。patindex作用供养运用通配符,可用于很大程度上更衣查找。而且CalEnter不克不及。因人而异,这两个作用在SQL中 在满足必要中搜索印串、把持、辨析是有扶助的。

关键词:

责任编辑:admin