14、SQL Server 使用子查询和CTE提供数据之相关子查询
2013-05-30 21:55
429 查看
使用子查询和CTE提供数据之相关子查询
与常规子查询不同之处在于,相关子查询引用了外部查询中的列,这是通过引用外部查询的范围变量或表别名实现的。
注:引用外部查询也意味着相关子查询不能独立运行。
其基本逻辑执行顺序如下:
1、执行外部查询一次
2、对于外部查询中的每行执行子查询一次,并在执行子查询中使用外部查询提供的值。
下面是说客户和旅行所之间的问题,旅行安排的旅行营地
例如:哪个客户居住在某个营地所在的地区
Select C.FirstName,C.LastName,C.region
from Customer as C
where Exists(select * from BaseCamp as B where B.region=C.region)
order by LastName,FirstName
当然,可以使用联接编写相同的查询,但是联接查询时,可以引用每个联接表中的列
而Where Exists 条件中的相关子查询无法这样做。
相关文章推荐
- 12、SQL Server 使用子查询和CTE提供数据
- 13、SQL Server 使用子查询和CTE提供数据之简单子查询
- 15、SQL Server 使用子查询和CTE提供数据之关系除
- 使用Java调用ElasticSearch提供的相关API进行数据搜索完整实例演示
- 【SQL Server】递归CTE查询view/sp/fun中使用的所有表
- [sql server] 问题总结13---分解字符串并查询相关数据
- Sql Server 存储过程中查询数据无法使用 Union(All)
- 解决在mybatis中使用CTE进行oracle查询数据类型为long的字段出现流关闭问题
- 如何在SQL Server 中使用相关子查询
- 使用Java调用ElasticSearch提供的相关API进行数据搜索完整实例演示
- 使用SQL SERVER 2005/2008 递归CTE查询树型结构
- 在SQL Server中使用相关子查询
- Windows下使用Java调用ElasticSearch提供的相关API进行数据搜索完整实例演示
- .NET 使用GridView控件绑定数据源其他操作(查询相关数据,而不是显示全数据)
- Atitit.mysql oracle with as模式临时表模式 CTE 语句的使用,减少子查询的结构性 mssql sql server..
- asp.net查询数据库时提示使用的sql server版本不支持数据类型date
- NHibernate初学者指南(15):使用LINQ to NHibernate提供程序查询数据
- SQL Server 触发器例题: --次性删除course表数据,使用触发器替换删除操作,先删除外键表相关数据,再删除course。很难理解
- 使用Java调用ElasticSearch提供的相关API进行数据搜索完整实例演示
- Atitit.mysql oracle with as模式临时表模式 CTE 语句的使用,减少子查询的结构性 mssql sql server..