通向T-SQL的阶梯:超越基本级别3:构建相关子查询Gregory Larsen著,2014/03/05系列本文是楼梯系列的一部分:楼梯到T-SQL:超越基础
从楼梯到T-SQLDML,GregoryLarsen介绍了T-SQL语言的更高级方面,比如子查询。在这个阶梯的第2级中,我讨论了如何在Transact-SQL语句中使用子查询。这个阶梯级别将通过讨论一种称为关联子查询的子查询类型来扩展子查询主题。我将探讨什么是关联子查询,以及它与普通子查询有何不同。此外,我将向您提供一些事务SQL语句的示例,这些语句超出了基础,并使用相关子查询帮助识别结果集中返回的行,以满足复杂的业务需求。什么是关联子查询?在这个阶梯的第2级中,我们了解到普通子查询只是另一个Transact-SQL语句中的SELECT语句,在该语句中,如果独立于外部查询运行,子查询可以返回结果。关联子查询是子查询的一种形式,它不能独立于外部查询运行,因为它包含来自外部查询的一个或多个列。关联子查询与普通子查询一样,有时被称为内部查询。如果关联子查询(内部查询)独立于外部查询运行,它将返回一个错误。由于内部查询的执行取决于外部查询的值,因此称为关联子查询。相关子查询可以执行多次。对于外部查询中选择的每个候选行,它将运行一次。每个候选行的列值将用于为相关子查询的每次执行提供内部外部查询列的值。包含关联子查询的语句的最终结果将基于相关子查询每次执行的结果。相关子查询示例的示例数据为了演示如何使用关联子查询,我需要一些测试数据。
我的所有示例都将使用AdventureWorks2008R2数据库,而不是创建自己的测试数据。如果您想继续学习并在您的环境中运行我的示例,那么您可以从这里下载Adven