子查询是一个嵌套在SELECT、INSERT、UPDATE或DELETE语句及其他子查询(子查询可以再嵌套子查询)中的查询。子查询可以写在WHERE子句中,也可以放在SELECT语句的某个字段表达式中。T-SQL的表达式很灵活,但是复杂的嵌套查询写出来以后,需要仔细思考一下,这样的语句可读性好吗?数据库查询优化器能很好地分析出执行计划吗?前面的章节中提到过,要尽量使用简单语句。对于子查询笔者的习惯是:
子查询尽量集中在WHERE子句中,以方便阅读。
在一个语句中,子查询的数量不超过3个,整个查询语句涉及的表不超过5个。