T-SQL Enhancement in SQL Server 2005 - Part I
2008-12-06 10:15:56 来源:WEB开发网核心提示: 再次运行上面的查询,我们会发现最终返回的结果为空: 看来CROSS APPLY使用的是Inner Join,T-SQL Enhancement in SQL Server 2005 - Part I(3),我们现在来试试OUTER APPLY: Order记录被返回,通过TVF获得的Pro
再次运行上面的查询,我们会发现最终返回的结果为空:
看来CROSS APPLY使用的是Inner Join。
我们现在来试试OUTER APPLY:
Order记录被返回,通过TVF获得的ProductNumber和Name的值为NULL。这充分说明了OUTER APPLY采用的是OUTER JOIN。
二、 Common Table Expression
Common Table Expression(CTE)可以看成是一个临时创建的View,他的生命周期仅仅限于当前Context。一旦CTE被创建,你可以将它当成一般的Table,大部分基于Table的操作都可以运用于CTE。下面是创建CTE的语法结构:
WITH cte_name(column name list)
AS
(
query
)
E.G.
WITH CTE_Black_Product
AS
(
SELECT * FROM Production.Product WHERE Color = 'Black'
)
SELECT * FROM CTE_Black_Product
CTE具有广泛的运用,他往往具有将问题化繁为简的魔力。下面介绍几个典型的运用:
1. 1. 将复杂的Aggregate置于CTE中,将复杂的问题分解为多个步骤。
如果我们现在需要统计每个客户发出的订单数量(相关数据存储于Sales.SalesOrderHeader
中),同时输出客户的个人信息(相关数据存储于Sales.Customer中)。虽然这样的功能很简单,但他体现了一种思想,把一部完成略显复杂的功能进程分解成多个简单的步骤。
Tags:SQL Enhancement in
编辑录入:爽爽 [复制链接] [打 印]- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接