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