sql server charindex函数和patindex函数详解(转) - 苍马之子
作者:admin来源:网络整理时间:2017-11-14

     charindex和patindex效能一直用来在音长特点中搜索特点或特点串。设想搜索特点牵制要搜索的特点,后来地这两个效能赢利任一非零积分的。,此积分的是在搜索CH中要搜索的特点数。。patindex效能支援运用通配符来停止搜索,可是,charindex不支援通配符。接下来,朕一个一个地辨析了这两种效能。。

以无论哪一个方式运用charindex效能
该charindex效能赢利特点或特点串的起端得名次。该charindex效能转移办法如次:
charindex ( expression1 , 2 [ , start_location ] )
expression1是要到2中找寻的特点中,start_location是charindex效能开端在2中找expression1的得名次。
该charindex效能赢利任一积分的,赢利的积分的是特点串中要找到的特点串的得名次。。设想未发现物charindex查找特点串,后来地效能积分的0。让朕看一下以下效能命令处死的归结为:
charindex(sql, microsoft sql 耐用的)
就是左右效能命令将赢利微软 sql 耐用的中SQL的起端得名次,在就是左右事例中,charindex效能赢利的S在微软 sql 耐用的打中得名次11。
接下来,让朕在charindex值得一下:
charindex(, microsoft sql server 2000)

      在就是左右事例中,charindex赢利零,因特点串 外出微软 sql 在耐用的中找到。

      接下来经过两个事例自己去看一眼以无论哪一个方式运用charindex效能来处理现实的t-sql成绩。

      第任一事例,猜想您要显示northwind数据库customer表前5行前卫列的last name。这是前5行数据。

           contactname

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

           maria anders

           ana trujillo

           antonio moreno

           thomas hardy

           christina berglund

     你可以关照它,自定义称号牵制客户的高音部 名字和最后的 name,它们被任一空虚的隔开。。我用charindx效能来决定经过的空虚的得名次。经过这种办法,朕可以辨析ContactName列的空虚的得名次,因而朕仅有的显示这一栏的最后的参加社交聚会。 name做切片。这是最后的的客户表显示5行数据 称号记载!

      select top 5 substring(contactname,charindex( ,contactname)+1 ,len(contactname)) as [上 称号] from s

下面是就是左右命令输入的归结为。

           last name

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

           anders

           trujillo

           moreno

           hardy

           berglund

      charindex效能找到高音部 名字和最后的 空虚的中间的名字,因而substring效能可以独自的ContactName列,因而不料最后的任一 选择称号。我要加法1的积分的的charindex效能赢利,左右,最后的 称号不以空格开办。

      在瞬间例,如你发言权,计算记载,牵制考虑到特点的接守打中无论哪一个记载。charindex效能可以便利地处理你的成绩。计算表中addresses接守中牵制单词road或他的缩写rd的记载数,选择陈述切近。:

       select count(*) from s

       where charindex(rd,地址) > 0 or charindex(road,地址)> 1

方法运用patindex效能

      patindex效能赢利特点或特点串在另任一特点串或脸色打中起端得名次,patindex效能支援搜索特点串中运用通配符,这使patindex效能在附近的使区分的搜索特点串很重要。patindex效能的命令如次:

      patindex ( %pattern% , expression )

      图案是您要搜索的特点串。,脸色是任一搜索特点串。。概括地说,脸色是表打中任一接守。,图案必要在前后迹象为%。,除非你在和约的前面或前面找学会决窍。。

      作为charindex效能同卵双胞,patindex效能赢利搜索特点串在被搜索特点串打中起端得名次。假设有左右任一patindex效能:

      patindex(%bc%,ABCD)

      就是左右patindex效能赢利的归结为是2,这作为charindex效能同卵双胞。这时的%迹象通知patindex效能去找特点串“bc”,不论在搜索前和继后有到什么程度个特点!

     设想你想察觉搜索特点串是由任一考虑到的特点串开端,您可以握住先前的%注意到。。的patinded效能应该是左右写的:

      patindex(ab%,ABCD)

     此命令的归结为赢利1。,表现搜索的特点串AB在搜索特点串AB中找到。。

      运用通配符可以编辑程序任一更复杂的搜索特点串挑剔任一简略的事例。设破旧的判别特点串必要的牵制字母a和z,更多号码,这parindex效能命令可以瞧像左右:

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

      请注意到,本例打中搜索特点做切片运用了落落大方的去世效能。。研究sql 耐用的联机登记可以利润下去去世制表的更多通讯。。接下来,朕用两个事例自己去看patindex和select怎样联姻起来运用。

      猜想您破旧的找出表中description接守中是牵制单词“bread”或“bread”的无论哪一个记载,因而选择陈述可以是左右的:

        select description from

        where patindex(%[b,b]read%,描述方法) > 0

     在这时我运用通配符来认可大写和小写字母的B。当我在notthwind数据库处死本子,利润以下归结为:

           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效能支援运用通配符,它可以用在差不多区分的产地。。和charindex不克不及。在于你自己的环境,这两个效能在sql中公正您 耐用的打中特点串搜索、把持、辨析纠纷常使对某人有利的。。

热点关键词
本站澳门彩票 - 澳门彩票公司 - 澳门彩票有限公司,所有信息和图片来自网络,不代表本站观点!
Copyright © 2016-2017 澳门彩票 - 澳门彩票公司 - 澳门彩票有限公司 版权所有    京ICP备12047666号-1