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行使职责支撑物运用通配符,它可以用在大量的意见分歧的获名次。。And CHARINDEX can't。在于你自己的情境,这两个行使职责在sql中适用您 服现役的打中性格串搜索、把持、剖析争论常利益的。。

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