Gregory Larsen,2014 / 03 / 05
该系列 本文是系列的一部分:楼梯楼梯T-SQL:超越基础 下面就从他的楼梯T-SQL DML、Gregory Larsen覆盖的T-SQL语言如子查询更先进的方面。 在这楼梯2级我讨论如何在Transact-SQL语句中使用子查询。这楼梯水平将扩大对查询主题的讨论类型的查询称为相关子查询。我将探讨什么是相关子查询以及它是如何不同于普通的子查询。此外,我将提供你一些事务的SQL语句,超越基本的例子和使用相关子查询来帮助识别返回的行的结果集,以满足复杂的业务需求。 相关子查询是什么? 在这楼梯2级我们得知一个正常的子查询是一个SELECT语句,在另一个Transact-SQL语句,在子查询可以独立运行的外部查询返回结果。相关子查询是一种形式的子查询不能独立运行的外部查询,因为它包含了从外部查询的一个或多个列。相关子查询,就像一个正常的子查询,有时被称为内部查询。如果相关子查询(内查询)是独立运行的外部查询将返回一个错误。由于内部查询的执行依赖于外部查询的值,则称为相关子查询。 相关子查询可以执行多次。它将在外部查询中选择的每个候选行运行一次。每个候选人排列的值将被用来为外部查询栏目内的相关子查询每个执行提供值。一个声明中包含一个相关子查询将基于对相关子查询每个执行结果的最终结果。 相关子查询实例样本数据 为了演示如何使用相关子查询我需要一些测试数据。而不是创建自己的测试数据,我所有的例子将使用adventureworks2008r2数据库。如果你想跟着我,跑在您的环境中的例子你可以从这里下载adventureworks2008r2数据库:https://msftdbprodsamples.codeplex.com/releases/view/93587 在一个相关子查询的WHERE子句的例子 展示一个相关子查询的WHERE子句中使用的假设,我想找出那些CustomerID已经购买了70多个款式。为了完成这个需求,我可以运行代码: 该