SQL中如何使用EXISTS
今天就跟大家聊聊有关SQL中如何使用EXISTS,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
EXISTS指定一个子查询,检测行的存在。
语法EXISTS subquery
参数subquery
是一个受限的 SELECT 语句 (不允许有 COMPUTE 子句和 INTO 关键字)。有关更多信息,请参见 SELECT 中有关子查询的讨论。
结果类型Boolean
结果值如果子查询包含行,则返回 TRUE。
示例A. 在子查询中使用 NULL 仍然返回结果集这个例子在子查询中指定 NULL,并返回结果集,通过使用 EXISTS 仍取值为 TRUE。
USENorthwindGOSELECTCategoryNameFROMCategoriesWHEREEXISTS(SELECTNULL)ORDERBYCategoryNameASCGOB. 比较使用 EXISTS 和 IN 的查询
这个例子比较了两个语义类似的查询。第一个查询使用 EXISTS 而第二个查询使用 IN。注意两个查询返回相同的信息。
USEpubsGOSELECTDISTINCTpub_nameFROMpublishersWHEREEXISTS(SELECT*FROMtitlesWHEREpub_id=publishers.pub_idANDtype=\'business\')GO--Or,usingtheINclause:USEpubsGOSELECTdistinctpub_nameFROMpublishersWHEREpub_idIN(SELECTpub_idFROMtitlesWHEREtype=\'business\')GO
下面是任一查询的结果集:
pub_name----------------------------------------AlgodataInfosystemsNewMoonBooks(2row(s)affected)C.比较使用 EXISTS 和 = ANY 的查询
本示例显示查找与出版商住在同一城市中的作者的两种查询方法:第一种方法使用 = ANY,第二种方法使用 EXISTS。注意这两种方法返回相同的信息。
USEpubsGOSELECTau_lname,au_fnameFROMauthorsWHEREexists(SELECT*FROMpublishersWHEREauthors.city=publishers.city)GO--Or,using=ANYUSEpubsGOSELECTau_lname,au_fnameFROMauthorsWHEREcity=ANY(SELECTcityFROMpublishers)GO
下面是任一查询的结果集:
au_lnameau_fname------------------------------------------------------------CarsonCherylBennetAbraham(2row(s)affected)D.比较使用 EXISTS 和 IN 的查询
本示例所示查询查找由位于以字母 B 开头的城市中的任一出版商出版的书名:
USEpubsGOSELECTtitleFROMtitlesWHEREEXISTS(SELECT*FROMpublishersWHEREpub_id=titles.pub_idANDcityLIKE\'B%\')GO--Or,usingIN:USEpubsGOSELECTtitleFROMtitlesWHEREpub_idIN(SELECTpub_idFROMpublishersWHEREcityLIKE\'B%\')GO
下面是任一查询的结果集:
title------------------------------------------------------------------------TheBusyExecutive\'sDatabaseGuideCookingwithComputers:SurreptitiousBalanceSheetsYouCanCombatComputerStress!StraightTalkAboutComputersButIsItUserFriendly?SecretsofSiliconValleyNetEtiquetteIsAngertheEnemy?LifeWithoutFearProlongedDataDeprivation:FourCaseStudiesEmotionalSecurity:ANewAlgorithm(11row(s)affected)E. 使用 NOT EXISTS
NOT EXISTS 的作用与 EXISTS 正相反。如果子查询没有返回行,则满足 NOT EXISTS 中的 WHERE 子句。本示例查找不出版商业书籍的出版商的名称:
USEpubsGOSELECTpub_nameFROMpublishersWHERENOTEXISTS(SELECT*FROMtitlesWHEREpub_id=publishers.pub_idANDtype=\'business\')ORDERBYpub_nameGO
下面是结果集:
pub_name----------------------------------------Binnet&HardleyFiveLakesPublishingGGG&GLucernePublishingRamonaPublishersScootneyBooks(6row(s)affected)
看完上述内容,你们对SQL中如何使用EXISTS有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。