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