欢迎来到天天文库
浏览记录
ID:12547772
大小:31.50 KB
页数:6页
时间:2018-07-17
《exists语句用法实例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、比如在Northwind数据库中有一个查询为SELECTc.CustomerId,CompanyNameFROMCustomerscWHEREEXISTS(SELECTOrderIDFROMOrdersoWHEREo.CustomerID=cu.CustomerID)这里面的EXISTS是如何运作呢?子查询返回的是OrderId字段,可是外面的查询要找的是CustomerID和CompanyName字段,这两个字段肯定不在OrderID里面啊,这是如何匹配的呢?EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任
2、何数据,而是返回值True或FalseEXISTS指定一子查询个,检测行的存在。语法EXISTSsubquery参数subquery是一个受限的SELECT语句(不允许有COMPUTE子句和INTO关键字)。有关更多信息,请参见SELECT中有关子查询的讨论。结果类型Boolean结果值如果子查询包含行,则返回TRUE。示例A.在子查询中使用NULL仍然返回结果集这个例子在子查询中指定NULL,并返回结果集,通过使用EXISTS仍取值为TRUE。USENorthwindGOSELECTCategoryNameFROMCategorie
3、sWHEREEXISTS(SELECTNULL)ORDERBYCategoryNameASCGOB.比较使用EXISTS和IN的查询这个例子比较了两个语义类似的查询。第一个查询使用EXISTS而第二个查询使用IN。注意两个查询返回相同的信息。USEpubsGOSELECTDISTINCTpub_nameFROMpublishersWHEREEXISTS (SELECT* FROMtitles WHEREpub_id=publishers.pub_id ANDtype='business')GO--Or,usingt
4、heINclause:USEpubsGOSELECTdistinctpub_nameFROMpublishersWHEREpub_idIN (SELECTpub_id FROMtitles WHEREtype='business')GO下面是任一查询的结果集:pub_name ----------------------------------------AlgodataInfosystems NewMoonBook
5、s (2row(s)affected)C.比较使用EXISTS和=ANY的查询本示例显示查找与出版商住在同一城市中的作者的两种查询方法:第一种方法使用=ANY,第二种方法使用EXISTS。注意这两种方法返回相同的信息。USEpubsGOSELECTau_lname,au_fnameFROMauthorsWHEREexists (SELECT* FROMpublishers WHEREauthors.city=publishers.city)GO--Or,using=ANY
6、USEpubsGOSELECTau_lname,au_fnameFROMauthorsWHEREcity=ANY (SELECTcity FROMpublishers)GO下面是任一查询的结果集:au_lname au_fname ------------------------------------------------------------Carson Chery
7、l Bennet Abraham (2row(s)affected)D.比较使用EXISTS和IN的查询本示例所示查询查找由位于以字母B开头的城市中的任一出版商出版的书名:USEpubsGOSELECTtitleFROMtitlesWHEREEXISTS (SELECT* FROMpublishers WHEREpub_id=titles.pub_id ANDcityLIKE'B%')GO--O
8、r,usingIN:USEpubsGOSELECTtitleFROMtitlesWHEREpub_idIN (SELECTpub_id FROMpublishers WHEREcityLIKE'B%')G
此文档下载收益归作者所有