ACCESS SQL查询条件示例.docx
查询条件示例适用于:MicrosoftAccess2010希里基于字段中的值来限制杳价的结果时,可以运用查询条件.查询条件於一个表达式,Access将它与我前字段位进行比较以确定是否包括含有用个值的记录。例如.="Chicago"班一个表达式,Access可将它与咨询中的文本字段的他进行比较,假如给定记录中该字段的值力“ChiCag。”,则Access会在杳询结果中包含该记录,本主越列出了多个查询条件示例.本文假设您结识如何设计简洁的选择查询.要了斛有关杳询的具体信息,清冬何交泡简介一文.本主题内容 概述 仁本、稿注和超燧接字段的条件 数字,货币和自动编号字段的条件 日期/时间字段的条件 其他字段的条件概述条件与公式类似,它是一个可能包含字段引用、运仃符和常Iw的字符串.查询条件也称为衣达式.下表显示了某线示例条件并说明它们如何工作“条件说明>25and<50此条件适用于款字字段,Sr价格坎忤存HT它仅包含这佯的记录;儿中“价格”成堆aM-Tfll包片大于25且小于50的值DateDittCyyyy-.(iK.11SJ,此条f:iM"U到门向?E3如厘'H"犷只4某人的生日期与今日的日期之Dat<)>30同相差的年效大于30的纪业才会包含在仪询结果中“IsNuII此条件可应用于任何类型的字段,以显小字段值为Null的记读.各个条件之间看上去可能有很大的不同。某线条件很陆用,它们只运用域本运算符(如S和常Ift(如-50").而有些条件IR困难,它们运用函数(如"DateDifr)或字段引用(如"BirthDat才).本E越供应广一些常用条件的示例.并按这些条件所应用于的数据类型对其进行了分组,您可以将本主理中供应的条件示例作为起点,起先箱手编写自己的条件.此外,您可能须要熟风函数、运舞符.特别字符和表达式的语法。仃关具体信息,请参闺”请参Blr部分中列出的文章。苏雯向戊询添加条件,您必需在设计视图中打开农询。然后标识要为其指定条件的字段。假如要为其指定条件的字段尚未包含在设“网格中,则您可以添加该字段,方法是将该字段从咨询设计窗”拖动到设计网格,或者双击该字段,假如所徜字段包含在设计网格中,则在“条件”行中键入该字段的条件.“条件”行中所指定的全部条件是组合在一起的您在''条件行中为不同字段指定的条件运用AND运。符组合在起.例如,可以为“城市”字段指定条件="芝加哥,并为“诞生日期”字段指定条件VDateAddfyyyyWO,Date(),这两个条件组合在一起进行说明.如下所示:城市="芝加哥-AND诞生日期VDateAddeyyyy,-40,Date()1 “城市”和诞生日期”字段都包括条件。2只有“城市”字段的依为“芝加哥的记录将满意此条件.3只有至少为40岁的那些人的记录将满意此条件,4只“同时满意这两个条件的记录才会包括在结果中.运用“或”行来指定代条件假如您有二选条件(即两组独立的条件,只要满意其中组即可),则可以同时运用设计怦格中的"条件”和Fr行.111城市”条件是在"条件1行中指定的,2 ”诞牛.日期”条件是在“成”行中指定的。“条件"和“或”行中指定的条件是运用OR运算符组合的,如下所示:城南="芝加IFoR诞生日期VDateAdd("yyyy1,-40.Date()假如您须婪指定更多备选条件,请运用“或"行卜面的行.在接着这些示例之前,谓留意下列几点:假如条件是嘀时的或者常常更改,则可以筛选查询结果.而不是板繁修改查询条件.筛选器会更曲查询结果,而不会更改直询设计。有关嘛选涔的具体信息,诂冬阅“请叁阅"部分,例如条件字段不变,但您要运用的值频繁更改,则Ur以创建参教备询,在运行参数/aw.该查勤会要求您输入值,然后运用您输入的值创建件询条件,有关创建要求输入值的备询的具体信息,请参阅“请参何”部分.文本、备注和超链接字段的条件下面的示例针时某个杳询中的“国家"也区”字段,该变泡场干个存储岷系人信息的表。条件是在设计网格中该字段的“条件”行中指定的.以下条件的记录延用此条件完全见配个(ft.rChina-'China”返Wr国家/地M字段汉堀为China-的记录.不K!某个值,3"Mexico”NotNcxico"运W国如地区字段i27I为Meico以外的国京/地区的记录.以指定的字符中开头.如U1.ikeU-不以指定字符印开头,如UNot1.ikeIT包含指定字符*,HrKorea1.ike“Korea”不包含指定字特用.I-Korea1Not1.ike-Korea-以指定字符申结尾.如1na1.iko-m不以指定字符卡站之,toTna,Not1.ikeia,包含Null的(即票少tfp1$NUI不包含Null值IsNotNull包含零长度字符中-一对引号)不包含零长度字符申包含Null9或等长度字符*不为空按字母依次樗在某个他(如Mexi后值在指定葩国内¢11AflD匹配两个值中的任一值,如USA或UK包含位列表中的任位Not'OrIsNullIsNotNullAndNot,>="MeXi8”1.ikemA-D,USA-Or-UKInCFrance",'China".年则名称以Hf开头的令部出京触区(i11UK,USAW)的记St.注林在表达式中运用时,星号C)代我防总?符:忙它也林为通配符,有关此类字符的则&,谙参便ACCCSS地配符号文.返何名称以I以外的字符开头的4、部国家/地区的记柔.返网包含字符*"Koea.的全觥国地区的记豪返回不包含字符;rxea的全部IHW地区的记录,i同名师以ina”结尾的全部IB家/JftM(如China和Argentina)的记戏.返I-I以Ina”姑IC的全fij国京/地区China和Argentina之外的记录.返I可该字段中没有傥的记录.返回该字段中不决少值的记录.返13该字段设巴为空(不是NuDm的记录.例如.供应应另个?5«门的镐“记录可能本PoUntrVRCgixJ段中包含空(fl.返回国家/地区"字段含有非空低的记球.返卜”该字KI中没在值或者该字段设置为空仪的记液.返时国宝州区字段含仃H空、llNull狼的记志返M从MeXiCo超先始终到字母表”,束的全前国家用UM的记录.返网名称以字用-AfD”开头的国家/坦区的记录。返回对应USA和UK的记录.返回对应列表中指定的全部IH家/地K的记录."German/","JapaT在字段的的特定位置包含某垓RightnC。UntryRegiOn1.I)=返网以终一个字母为y的全部W家/地区的记忒字符V满依长度要求1.erX(CountryRegionl)>10返I可名称长慢大于10个字符的国家/地区的记读.瓜配特定模式1.iko-CW?"返回幺称为五个字符长并旦葡三个字符为'Cr的国家/地K(fclChina和Chile)的记录.注群字符?和_在表达式中运M时代表限个字符这些字符也称为通配符.字符,不便在包含?字符的农送式中运用,也不能在包含,通配符的表达式中运用.区可以在同时包含%通配符的表达式中运阳通配符_.超悠接条件略赣有点困难就认状况下,为超链接字段指定的条件将应用于该字段值的显示文本部分.而非捡接目标.要为该值的目标统一资源定位器(UR1.)部分指定条件,请运用“HyperIinkParT表达式,运用的喑法与以下语法类似:HyperlinkPart(Tablcl.Fieldl,l)=":/microsoft/-.其中TabIeI是包含超燧按字段的表的名称,Fieldl是超性接字段.:microsoft是要匹泥的URl.数字、货币和自动编号字段的条件下面的示例针对某个查询中的""价"字段,该音剂基于一个存储产品信息的表-条件是在15询设计网格中该字段的"条件“行中指定的。Inl含H盒以下条件的记录运用此条件查检脩果完全也配一个值,如100100运网产拈里价为¥18的记录,不匹配枭个值,如1000Not100O返网产品通价不为¥1000的记或.包含小于某个位(如100)的tk100<-100返问单价低于Y100(<100)的记录.其次个表达式(<=100)屈示的击岐于成等于Y100的记录,包含大于某个值(如99.99>的>99.99返回单价自J¥99.99(>99.99)的记互其次个耍达式>=99.99显示单击f5f或等于Y9999ffjid.包含两个值(如20或25)20or25的任啦返回单价为¥20或¥25的记录.包含某个值范围之内的值>49.99and<99.99或BetWeen50and100一回单价介于(位不包括)¥49.99和¥99.99ZMffJid录.包含某个范困之外的位<50or>100这回平价不在Y50和Y100之间的记录.包含多个特定但之-ln(20.25,30)返回单价为¥20、Y25或¥30的记录.包含以指定数字结尾的位1.ike-4.99一刚单价以“附结尾(如¥4.99.¥14.99.¥24.99.等)的记浆注轻字符*和%在我达式中运用时代表的。散Q的字符,这些字符也称为通配符,字符%不健在包含,字符的友达式中运用,也不使在包a?通也符的衣达式中运Hl-您可以在同时包含_通用符的表达式中运川通配符%包含Null*1(即屎少M)IsNull返回一单仰字段中未的入Nl的记录,包含非NUll值l$NotNull这ri11ft字段中不缺少班的记录.日期/时间字段的条件下面的示例针时某个查沏中的TJ岫11期.字段,该杳询基于一个存储订雅信息的友.条件是在较询设计网格中该字段的"条件"行中指定的。要包畲意以下运用此条件查询饴果条件的记录完全凡ft?个依,如222006*22006运回交易发生在2006年2月2H的记录.请记住在H期值两边也以#字符,以使Access可区分H期值和文本字符申.不叫配某个值,lNOl#222006#222006运网交后不是发生在2006年2月2日的记录。包含某个特定UWl<4222006#(加2,212006)Z前的俄返回交易发生在2006年2月2日之前的记录.要农行发生在该日期或该日期之前的交易,请运用VH运好符而不是V运况符.包含某个特定H期>眨,2,2006#(如2,22006)Z后的值包含某个日期位Sl之内的他*22006#andVlr242006V返回交易发生在2006”2月2日之后的记戏.嬖位6发生在i亥日期或该日期之后的交易,语运用>»运第行而不是>送尊符.jM交班发生花2006年2月2H和2006年2月4日之间的记求.生还可以运用Between应。符来奇选个他IH力(包括编点值)“例如,Between#2'2'2006#and#2/4,'2006#t?>=#2,22006#and<=#242006#相同.包含某个萄恸之外的他包含两个值中的任«(.l2'2'2006<#2,22006#Or>#22006#达川交易发牛4.2006<:2F2H之曲或2006年2月4日之后的记录,.#2,22006#Oi#2320064返卜)交IJ发生在2006年2月2UiS2006年2月3日的记录.或23,2006包含多个(ft之一In(#2'12006,#371/2006«,运河交易发生在2006评2月111.2006«i3月1:1#4巾2006#)成2006年4月1H的记氽,包含特定月份(与年DatePartem”,曲仰日期J)=逖回交易发生在任何年的12月的记录.份无关)内的某个日129J.如12月包含特定季度(与年DalCParrq/KHHl期D=I返回交&发生.花江一年的第度的记尿.份无关)内的某个日期,如一季度包含今口的日期DateO包含昨天的日期Date()-1包含明天的日期OatOO+1近同交易发生在当天的记录.假如当天日期为2/2Z2006,则您将看到“IJ购H期字段设置为2006年2月2H的记录.返回交易发生在当天的前及的记玳.假如当天日期为222006,更您格看到2006年2H1llfTjid.运到交S;发生在当天的后一天的记氽.假如当天日期为22006.姬第格存到26年2月3H的记;.包含当Ift星期内的DateParltWJtflUmJBD返回交易发生在当前星期内的记乘.个星期从星期日起先日期DatePartnwDateO)and到星期六结束,Year(Sm日期D=Year(DateO)包含上星期内的Year(Hrt普H期53+返回交易发生在1一个星期的记荣.个星期从此期日起先到日期OatePart(MV固网I孙-型期六结束.Ycar(Date()53+DatPart(,wZ,.DateQ)-1包含下个星期内的YeaWftHWJKW返到交期将在下个里期发生的记录.个星期从星期H起先53+DatePari(w.(WW11到里明六结束“咖=Year(DateoV53*DatePart(MWWDate。)+包含前7天内的BeIWCenOatooandDale()6返回交S发生在的7天的记录“假如当天H期为13期222006,则您将n到从2006年1fi24日到2006年2月2H这段时向的记戏.包含属F当前月的Yea”(销件H期)迄河与首月的记炭,但如3天H期为222006l!l.*f11日期Year(NOW()AnCMomh(I的件到2006年2月的记;S”HjIJD=MontNNowW包含属F.匕个月的Yearatfi售口期D,12+日期DatePartCm”,销售H期)近到匕个月的记录.假如当天日期为22306.则您将营到2006年1月的记录,Year(Date()12+DateParlCm".Dat()-1包含好TF个月的Yeara皓HWnrI2+日期DatePa11(m-,ffi1H用)-Yeaf(DateO)#12+DagPartc'm".Date。)+1包含前30天或BelweenDate()And31天内的Il期DateAddrW1-I,Date()包含网I当前季度Year(IfttVftIJWj)=峋日期Year(NowO)AndDatePart("qDateo)-DatePa11(-q.NOWo)包含网上上个季度Year(tta的日期期J)Y+DatePartCq"的例日«)-Yeaf(Date()4+DatePartq,Dat()1包含141下个季度Yeaw销您日的日期期)&DatePartEF销的日WD=Year(Date()4+DatePartrq".Dateo)+1包含当隼内的日期Yeeru希曾日期)Ycar(DateO)包含璃于去年的日YeaM,!i期D=WJYear(DateO)-'包含属于明年的日Yea销售日期)返回下个月的记求.假如为天日期为222006.JM您将希到2006年3月的记录,个月的销售记心.一如当天日期为2Z2006.则您将。到从2006年1月2日到2006年2月2日这段时间的记录这当前季度的记录.假如当天日期为2a2006.则您将Ti-Jl20064强我的记戏.这上个季IJ的记录.假如当天日期为222006,与您招tf«25年最终个季度的记求.返川卜个李咬的记术.但如当天11期为2,22006.纵您格不到2006年:乘度的记录.Year(DateO)*1包含介于1月1Year(ifiwaw=这问当年的氾单:.假如当天日IB为2.2.2006.则您将料到2006年的记取“送回交易发生在去洋的记录.假如当天日期为2,22006.则您将看到2005年的记录.返阿交招日粉为明年的记录.假加当天日期为2,22006.姬您将赤列2007年的通豪.返M交助日期介JY年1月1日我力天之间的记录.假如HW今Il之间的HYear(Date()andMonth"的aIVF期为222006.则您将看到从2006i:1Jl1U用母到今”为止日用D<Month(DateO)and到200642月2Il这段时向的记液.的记录)Day(I销件HjWDV=Day(Date()返回交易发生在:当天之前的记柔.运网女S将在当天之后发生的记录.返回跳少交易口叫的记聚.这同交易日用已知的记录,包含发生在过去的VDagO日期包含发生在将求的DatoO日期筛选Null£(PPttIsNuII少如筛选IlNullfftISNOtNull其他字段的条件“是/否"字段在"条件”行中.进人“是"可包含夏选柩己选中的记录.次入“否”可包含女选框未选中的记录.附件在“条件”行中,键入IsNuII可包含不含任何附件的记录.犍入IsNotNull可包含含有附件的记录.查阿字段行两种类型的查阅字段:钟是在现仃数加液中运用外键之阅伎的衽阅字段:一种是基于创建查的字段时指定的值列表的查阅字段.至于指定(ft的列我的"查阅"字段为文本数据类型,井口有效条件与其他文本字段相同.可在基于现有数据源值的查阅字段中运用的条件取决于外键的数据类中,而不是所送例的数据的数据类型,例如,您可能仃一个显示施员姓名的C阅字段,但是该字段运用Number数据类型的外键:因为该字段存储数字而不是文本,所以应运用对数字起作用的条件;即2假如不知道外健的数据类型.则可以在设计视图中查看源表以确定字段的数据类型.要执行此操作,靖:1. 在“导航窗格”中找到源表。2. 运用卜列方法之一在设计觇图中打开该表: 单击该表,然后按CtrkEnter 右连生击该龙,然后单击“设计视图,3. 在表设计网格侬“数据类型”列中列IK了毋个字段的救据类型.多值字段多值字段中的数据作为行存储在防薄衣中,该去由OfficeAccess2007创建井培充以表示该字段,在较½设计.视图中.该字段在“字段列表”内由个可扩展字段表示。要对多值字段运用条件,应为唠薄衣中的单个行供应条件,要执行此操作,清:1. 创建一个包含多值字段的查询,并在设计视图中打开它.2. 胞击多值字段旁边的加号(+)将其绽开(假如该字段已经境开,则此符号为减号(一).就在该字段的名称下面,您将看到一个代在该多值字段的某一个值的字段.此字段将与多伯字段同名,但后面跟有字符申”.Value"。将名值字段及其单值字段拖至设计网格中单独的列中。志如想在结果中只百到完整的多值字段,请清除对应单值字段的“显示"乂选框。在单低字段的“条件”行中摄入您的条件,运用适合于这些值所我小的数楙类型的第ft.务侑字段中的徒个住将运用您供应的条件单独求俯。例如,您可能有个存偌了系列数字的多值字段。假如供应条件5ANDv3,则什何至少有一个值大于