通配符:通配符描述示例%包含零个或更多字符的任意字符串。WHEREtit"> 通配符:通配符描述示例%包含零个或更多字符的任意字符串。WHEREtit" />
ID:34726238
大小:148.18 KB
页数:8页
时间:2019-03-10
2、en'将查找以arsen结尾且以介于C与P之间的任何单个字符开始的作者姓氏,例如,Carsen、Larsen、Karsen等。[^]不属于指定范围([a-f])或集合([abcdef])的任何单个字符。WHEREau_lnameLIKE'de[^l]%'将查找以de开始且其后的字母不为l的所有作者的姓氏。将通配符作为文字使用可以将通配符模式匹配字符串用作文字字符串,方法是将通配符放在括号中。下表显示了使用LIKE关键字和[]通配符的示例。符号含义LIKE'5[%]'5%LIKE'[_]n'_nLIKE'[a-cdf]'a、b、c、d或fLIKE'[-acdf]'-、a、c、d或fLIKE
3、'[[]'[LIKE']']LIKE'abc[_]d%'abc_d和abc_deLIKE'abc[def]'abcd、abce和abcf使用ESCAPE子句的模式匹配可搜索包含一个或多个特殊通配符的字符串。例如,customers数据库中的discounts表可能存储含百分号(%)的折扣值。若要搜索作为字符而不是通配符的百分号,必须提供ESCAPE关键字和转义符。例如,一个样本数据库包含名为comment的列,该列含文本30%。若要搜索在comment列中的任何位置包含字符串30%的任何行,请指定由WHEREcommentLIKE'%30!%%'ESCAPE'!'组成的WHERE子句。如
4、果不指定ESCAPE和转义符,SQLServer将返回所有含字符串30的行。下例说明如何在pubs数据库titles表的notes列中搜索字符串"50%offwhen100ormorecopiesarepurchased":SELECTnotesFROMtitlesWHEREnotesLIKE'50%%offwhen100ormorecopiesarepurchased'ESCAPE'%'
5、表达式中的匹配?_(下划线)任何单一字符*or%零个或多个字符#任何单一数字(0—9)[charlist]任何在字符表中的单一字符[!charlist]任何不在字符表中的单一字符可用括在括号([])中的一组字符(字符表)来匹配表达式中任何的单一字符,而且字符表中几乎可以包含
6、内时,可以直接和它们自己匹配。一组字符内的右括号(])不能匹配它自己,但是如果它是一组之外的单一字符,就能用来匹配。除了括在括号内的字符的简单表列,字符表可以指定一字符范围,用连字符号(-)来隔开范围的上下界。例如,在样式中使用[A-Z],可在包含从A到Z的任何大写字母的表达式内,找出相应的字符位置。可以在括号之中包含多个范围且不需要在范围间划上界线。例如,[a-zA-Z0-9]指任何符合文数值的字符。一定要注意,仅当使用MicrosoftJet4.X版和MicrosoftOLEDBProviderforJet时,ANSISQL通配符(%)和(_)才可用。若使用MicrosoftAcce
7、ss或DAO,则将其视为原义字符。样式匹配的重要的规则还有:·在字符表开头的惊叹号(!),意味着在表达式中寻找那些不包括在字符表中的字符。若惊叹号(!)在括号之外,它只匹配它自己。·如果连字符(-)在字符表的开头(如果有惊叹号,则紧跟在惊叹号之后),或在字符表的末尾,则它匹配连字符(-)自己。否则它被视为ANSI字符范围的标识。·当您指定一个字符范围时,首尾字符必须以升序的顺序出现(A-Z或0-100)。例如,[A-Z]是有效的,而
此文档下载收益归作者所有