T-SQL查询进阶:深入理解子查询
发布时间:2016-10-18 13:13:18 所属栏目:MsSql教程 来源:站长网
导读:副标题#e# 引言 SQL有着非常强大且灵活的查询方式,而多表连接操作往往也可以用子查询进行替代,本篇文章将会讲述子查询的方方面面。 简介 子查询本质上是嵌套进其他SELECT,UPDATE,INSERT,DELETE语句的一个被限制的SELECT语句,在子查询中,只有下面几个子句
子查询作为计算列使用当子查询作为计算列使用时,只返回单个值(Scalar) 。用在SELECT语句之后,作为计算列使用。同样分为相关子查询和无关子查询 相关子查询的例子比如:我想取得每件产品的名称和总共的销量 SELECT [Name], (SELECTCOUNT(*) FROM AdventureWorks.Sales.SalesOrderDetail S WHERE S.ProductID=P.ProductID) AS SalesAmount FROM [AdventureWorks].[Production].[Product] P 部分结果如下: 当子查询作为计算列使用时,会针对外部查询的每一行,返回唯一的值。 同样的,SQL子查询都可以使用其他语句达到同样的效果,上面的语句和如下语句达到同样的效果: SELECT P.Name,COUNT(S.ProductID) FROM [AdventureWorks].[Production].[Product] P LEFTJOIN AdventureWorks.Sales.SalesOrderDetail S ON S.ProductID=P.ProductID GROUPBY P.Name 子查询作为计算列且作为无关子查询时使用,只会一次性返回但一值,这里就不再阐述了。 小结本篇文章通过子查询的三种不同用途来阐述子查询。同时,所有的子查询还可以分为相关子查询和无关子查询,而子查询所实现的功能都可以使用连接或者其他方式实现。但一个好的作家应该是掌握丰富的词汇,而不是仅仅能表达出自己的意思。学会多种SQL查询方式是学习SQL查询必经之路。 From:cnblogs 宋沄剑 (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |