欢迎来到天天文库
浏览记录
ID:55738401
大小:99.50 KB
页数:10页
时间:2020-06-03
《各类子查询的比较各类子查询的比较.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、各类子查询的比较A.在子查询中使用NULL仍然返回结果集以下示例返回在子查询中指定了NULL的结果集,并且通过使用EXISTS仍求值为TRUE。复制代码USEAdventureWorks;GOSELECTDepartmentID,NameFROMHumanResources.DepartmentWHEREEXISTS(SELECTNULL)ORDERBYNameASC;B.比较使用EXISTS和IN的查询以下示例比较了两个语义等同的查询。第一个查询使用EXISTS,第二个查询使用IN。复制代码USEAdventureWorks;GOSELECTDISTIN
2、CTc.FirstName,c.LastName,e.DepartmentIDFROMPerson.ContactcJOINHumanResources.EmployeeeONe.ContactID=c.ContactIDWHEREEXISTS(SELECT*FROMHumanResources.DepartmentdWHEREe.DepartmentID=d.DepartmentIDANDd.Name='Purchasing');GO下面的查询使用IN。复制代码USEAdventureWorks;GOSELECTDISTINCTc.FirstName,c
3、.LastName,e.DepartmentIDFROMPerson.ContactcJOINHumanResources.EmployeeeONe.ContactID=c.ContactIDWHEREDepartmentIDIN(SELECTDepartmentIDFROMHumanResources.DepartmentdWHEREd.Name='Purchasing');GO以下是其中任一查询的结果集。复制代码FirstNameLastNameDepartmentID------------------------------------------
4、--------------------AnnetteHill5ArvindRao5BenMiller5EricKurjan5ErinHagins5FrankPellow5FukikoOgisu5GordonHee5LindaMeisner5MikaelSandberg5ReinoutHillmann5SheelaWord5(12row(s)affected)C.比较使用EXISTS和=ANY的查询以下示例显示两个查找其名称与供应商名称相同的商店的查询。第一个查询使用EXISTS,第二个查询使用=ANY。复制代码USEAdventureWorks;GOSE
5、LECTDISTINCTs.NameFROMSales.StoresWHEREEXISTS(SELECT*FROMPurchasing.VendorvWHEREs.Name=v.Name);GO下面的查询使用=ANY。复制代码USEAdventureWorks;GOSELECTDISTINCTs.NameFROMSales.StoresWHEREs.Name=ANY(SELECTv.NameFROMPurchasing.Vendorv);GOD.比较使用EXISTS和IN的查询以下示例显示查找以P开头的部门员工的查询。复制代码USEAdventureWor
6、ks;GOSELECTc.FirstName,c.LastName,e.TitleFROMPerson.ContactcJOINHumanResources.EmployeeeONe.ContactID=c.ContactIDWHEREEXISTS(SELECT*FROMHumanResources.DepartmentdWHEREe.DepartmentID=d.DepartmentIDANDd.NameLIKE'P%');GO下面的查询使用IN。复制代码USEAdventureWorks;GOSELECTc.FirstName,c.LastName,e
7、.TitleFROMPerson.ContactcJOINHumanResources.EmployeeeONe.ContactID=c.ContactIDWHEREDepartmentIDIN(SELECTDepartmentIDFROMHumanResources.DepartmentWHERENameLIKE'P%');GOE.使用NOTEXISTSNOTEXISTS的作用与EXISTS正相反。如果子查询没有返回行,则满足NOTEXISTS中的WHERE子句。以下示例查找不在部门中且姓名以P开头的员工。复制代码USEAdventureWorks;GO
8、SELECTc.FirstName,c.LastName,e.Ti
此文档下载收益归作者所有